文/图 Cool_wXd
看了 《发掘就爱设计V7完整版漏洞》后,感觉作者的思路很好,但作者在实践过程中有些不足,主要是因为作者在网上实战时暴库不成功,但却因为是默认的数据库而导致一句话木马插入成功,总感觉有些幸运的成分,于是就从网上下载了这套程序自己分析一下,也有了一些收获,就在这里和大家分享一下。
作者在文中已经写过的漏洞这里就不提了,下面我们具体看看其他的漏洞吧!首先说一下程序的上传漏洞,该漏洞存在于upfile.asp文件中,部分代码如下。
set file=upload.file("file")
If file.filename<>"" then 限制文件格式
fileExt=getExt(file.filename)
Forum_upload="gif,jpg,jpeg"
Forumupload=split(Forum_upload,",")
for i=0 to ubound(Forumupload)
if fileEXT=trim(Forumupload(i)) then
uploadsuc=true
exit for
else
uploadsuc=false
end if
Next
if uploadsuc=false then
response.write "<font size=2>文件格式受限制[<a href=# onclick=history.go(-1)>请重新上传</a>]</font>"
response.end
end If
if file.filesize>0 then
if file.filesize>1000*500 Then 限制图片上传大小
response.write "<font size=2>图片大小超过了限制[<a href=# onclick=history.go(-1)>重新上传</a>]</font>"
response.end
end If
uploadsuc=false
end if
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&file.FileName
path="UpFile/friends/"&FileName
Response.write path
Response.end
if file.FileSize>0 then
如果 FileSize > 0,说明有文件数据
file.SaveAs Server.mappath(formpath&filename) 保存文件
end If
Else
path=""
End If
Response.Write "<script>parent.add.title.value="& Replace(file.filename,"."&fileExt,"") &"</script>"
Response.Write "<script>parent.add.pathsmall.value=UpFile/"& upFolder &"/"&filenameS&"</script>"
Response.Write "<script>parent.add."& inputName &".value=UpFile/"& upFolder &"/"&FileName&"</script>"
看到这段代码朋友们会想到什么方法呢?就是截断上传了,也就是动网论坛最初出现上传漏洞的利用方法。下面我们就具体操作一下。在“跟我交往中”选择我们的ASP木马文件,我这里是diy.asp,用WSockExpert抓包(注意,这里一定要上传ASP木马文件抓包,否则在使用NC提交的时候会显示验证码错误),如图1所示。
在跨站这方面,《发掘就爱设计V7完整版漏洞》一文的作者没有介绍到位,因为有些变量还是没有经过HTMLEncode函数过滤的,也就是说,我们还是可以利用用户提交数据来构造跨站语句的。我们来看看“关于”中的“跟我交往”中涉及到的代码。
name=reStr(Upload.Form("name"))
sex=reStr(Upload.Form("sex"))
age=reStr(Upload.Form("age"))
profession=reStr(Upload.Form("profession"))
area=reStr(Upload.Form("area"))
qq=reStr(Upload.Form("qq"))
msn=reStr(Upload.Form("msn"))
email=reStr(Upload.Form("email"))
tel=reStr(Upload.Form("tel"))
codes=reStr(Upload.Form("codes"))
line 105-114
rs("name")=name
rs("sex")=sex
rs("age")=tolong(age)
rs("profession")=profession
rs("area")=area
rs("qq")=qq
rs("msn")=msn
rs("email")=email
rs("tel")=tel
rs("photo")=path
这段代码通过函数reStr来获取参数,这个函数的代码如下:
Function reStr(str)
reStr=Replace(Trim(str),"","")
End Function
过滤了两边空格,并替换单引号,这样就能防住我们跨站吗?看看效果!当管理员登录后台点击“跟我交往”的链接后,就会弹出我们的跨站代码了,如图5所示。这里我们以地区跨站为例子,其他的限制了长度的可以利用本地提交的方式实现!
图5
由于这套系统的后台过于简单,管理员添加和数据库的相应操作都没有,所以后台得到了也没有什么太大的用途,无非是添加一些链接罢了。关于这套系统我们就分析到这里,本文主要说了上传和跨站两个漏洞,但我想利用价值还是有的,希望大家不要利用漏洞去做坏事