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)