cookie欺骗,L-blog的cookie欺骗漏洞分析

L-blog的cookie欺骗漏洞分析 - 网络安全 - 电脑教程网

L-blog的cookie欺骗漏洞分析

日期:2006-11-20   荐:
ps:漏洞利用程序本站已经发布,请自己搜索

作者::p 组织:DinGoClan MSN:[email protected]

网站挂了,没事干,看网上说L-blog被黑了,想想自己的blog有一部分用的是L-blog代码,知道L-blog的upfile.ASP文件一直有问题,所以问题应该就是出在这个文件。既然没事做,就来看看漏洞是什么吧。

一.查找漏洞

既然是上传有问题,就先看看上传的文件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.createObject("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。

screen.width-300)this.width=screen.width-300' border='0' alt='Click to Open in New Window'>

修改完成后进入主页后会显示我们没有登陆,因为我们把memName和memPassword都删了嘛。好们直接打开个日志,看看有没有上传的选项。

screen.width-300)this.width=screen.width-300' border='0' alt='Click to Open in New Window'>

哈,上传出现了!接下来干什么?还用我说!!!抓包上传木马。

screen.width-300)this.width=screen.width-300' border='0' alt='Click to Open in New Window'>
screen.width-300)this.width=screen.width-300' border='0' alt='Click to Open in New Window'>

由于是UTF-8格式,所以显示的是乱码,其实重新运行个ie打开这页就没事了,不过对我们没什么影响。

一.防范方法

方法当然是有很多啦,我在这就先说个简单的,把commond.asp里面的这句
IF memName<>Empty AND Session("GuestIP")<>Guest_IP Then

改成
IF (memName<>Empty OR memStatus<>Empty) AND Session("GuestIP")<>Guest_IP Then

这样就可以了。

注:看网上的消息,L-blog的漏洞肯定不只这么一个,看来网上没有绝对安全的东西。有错误还请大家提点!

(出处:http://www.sheup.com)




标签: