飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2031|回复: 0

L-blog的cookie欺骗漏洞分析

[复制链接]

该用户从未签到

发表于 2006-3-17 09:04:34 | 显示全部楼层 |阅读模式
既然是上传有问题,就先看看上传的文件attachment.asp。  

先看这句  

IF memStatus="SupAdmin" OR memStatus="Admin" Then  

IF Request.QueryString("action")="upload" Then  

Response.Write("  
")  

往下省略  


上传只考虑到了memStatus,没有考虑到用户的权限。  

大概了解是cookie的问题了,看看commond.asp对用户cookie的验证。  

Dim memName,memPassword,memStatus  

memName=CheckStr(Request.Cookies(CookieName)("memName"))  

memPassword=CheckStr(Request.Cookies(CookieName)("memPassword"))  

memStatus=CheckStr(Request.Cookies(CookieName)("memStatus"))  


用户的信息全由cookie提取,没什么问题。  

问题出在下面这句  
IF memName<>Empty AND Session("GuestIP")<>Guest_IP Then  

Dim CheckCookie  

Set CheckCookie=Server.create("ADODB.RecordSet")  

SQL="select mem_Name,mem_Password,mem_Status FROM blog_Member where mem_Name=’"&memName&"’ AND mem_Password=’"&memPassword&"’ AND mem_Status=’"&memStatus&"’"  

CheckCookie.Open SQL,Conn,1,1  

SQLQueryNums=SQLQueryNums+1  

IF CheckCookie.EOF AND CheckCookie.BOF Then  

Response.Cookies(CookieName)("memName")=""  

memName=""  

Response.Cookies(CookieName)("memPassword")=""  

memPassword=""  

Response.Cookies(CookieName)("memStatus")=""  

memStatus=""  

End IF  

CheckCookie.Close  

Set CheckCookie=Nothing  

End IF  


如果用户cookie的memName不为空,就从数据库里验证用户名和密码,不正确就清空cookie,粗略看是没什么问题的。可是仔细想想的话,如果memName为空,而memStatus不为空呢,上传部分只验证memStatus,没有验证memName,我们如果把memStatus的值改成SupAdmin或Admin,不就可以上传了?哈!!L-blog竟然犯了这么个低级的错误。L-blog的漏洞由此诞生。  

一.利用方法  

首先当然要先找个L-blog的网站啦,我这找了个:  

http://www.flyeasy.org/blog/default.asp  

先注册个用户,我这里是用户名123451密码111111.  

http://www.flyeasy.org/blog/logging.asp 登陆,保存期限至少要选个1天,要不我们不就没法改cookie了嘛,登陆好后,用iecv去改cookie,就保留memStatus并把他的值改成SupAdmin或Admin。  

修改完成后进入主页后会显示我们没有登陆,因为我们把memName和memPassword都删了嘛。好们直接打开个日志,看看有没有上传的选项。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表