庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>安全技术>黑客攻防>漏洞研究>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

再暴动力上传漏洞

 作者:Linzi    日期:2005-5-7
字号选择〖 〗/ 双击滚屏 单击停止   
还是先来读一下这个代码吧,可能因为是这个漏洞出来很久了,所以很少有人会再去看一下这个漏洞的代码,我也是在一样无意中重读这个代码时发现这个漏洞的.

const UpFileType="rar|zip|exe|mpg|rm|wav|mid" 定义了可以上传的文件类型
...
dim EnableUpload 定义了是否允许上传的关键变量
...
FoundErr=false 默认FoundErr变量为假,即没有发现错误(哈哈,关键变量哦,看下面)
EnableUpload=false 默认EnableUpload变量为假,即不能上传(哈哈,关键变量哦)
...
for each formName in upload.file列出所有上传了的文件(!关键,注意这个FOR循环!)
set ofile=upload.file(formName) 生成一个文件对象
...
arrUpFileType=split(UpFileType,"|") 取得定义的可以上传的后缀名
for i=0 to ubound(arrUpFileType)
if fileEXT=trim(arrUpFileType(i)) then
EnableUpload=true hoho,EnableUpload变量改变了!
exit for
end if
next
if fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" then 呵呵,只要是ASP,ASA,ASPX的后缀就废掉了,难怪海洋顶端上不去阿!
EnableUpload=false
end if
if EnableUpload=false then
msg="这种文件类型不允许上传!\n\n只允许上传这几种文件类型:" & UpFileType
FoundErr=true hoho,FoundErr变量改变了!
end if
...
if FoundErr<>true then 又是一个重要地方,看来FoundErr变量是能否上传的关键,那如何决定FoundErr变量呢?(草草虫ps:偶可以瞪大了眼睛看啊)
randomize
ranNum=int(900*rnd)+100 生成一个随机数 filename=SavePath&year(now)&month(now)&day(now)
&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt 没有改变上传文件的后缀,爽阿
...
ofile.SaveToFile Server.mappath(FileName) 保存文件
response.write "软件上传成功!软件大小为:" & cstr(round(oFileSize/1024)) & "K"
strJS=strJS & "parent.document.myform.DownloadUrl1.value=" & fileName & ";" & vbcrlf 晕拉~还返回上传后改的名字,这回好了,不用猜了。
strJS=strJS & "parent.document.myform.SoftSize.value=" & cstr(round(oFileSize/1024)) & ";" & vbcrlf
注:...表示省略了部分代码

具体的漏洞原理分析,我不想多说了,因为有太多的人分析了,我这里只分析"if fileEXT="asp" or

fileEXT="asa" or fileEXT="aspx" 这一句,这一句他定义了上传的类型,很多人还在后面加个了fileEXT="cer"等等等等,用来补上上传漏洞,但经过分析就会发现,这种补法是无济于事的.因为如果我们上传的东西扩展名为asp.(后面有个.)根据windows中,windows会有自动吃掉吃"."的"好"习惯,那么我们上传的asp.满足了代码中的要求,且上传后点会自动消失,这样的上传,即使你在后面加了多少个cer等都无济于事.不过在对动力有的版本时,你上传有点的asp,他会自动生成一个无扩展名的文件,所以如:我们上传的是newmm.asp.就会变成newmm这个没有扩展名的文件,那怎么办呢,开始的时候我也郁闷,后来在课堂上想这个问题时,想着想着,突然有了灵感.如果我们在后面加上个空格呢,asp (注意有空格)不就满足代码上的条件,而且上传之候windows又有吃掉空格的"好习惯",所以我们构造的上传文件自然就会上传成功.另外如果加个#也一样,同样可以成功.用这个方法可以突破大多数3.51的补丁限制,不过我说的这个补丁只是fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" 这种后面加上防上传扩展名的补丁,如果你把upfile.asp改成和3.6的一样的,就不会有这个漏洞.

不要认为只有动力的文章有这个漏洞,要知道,网络上这种型的web程序非常多,例如武易传奇,还有凡尘文学,各种OA办公的等等,总之有非常非常多,我试了好几种类型上传文件的全部成功.这样下菜鸟们可以说又有一大堆的肉鸡了,对于文中所说到的利用,我做成了动画,另外再一下,如果是和动网整合的动力,下载的数据库在dv_log可以有时可以查看没有加密过的密码.

作者QQ:290329536

上一篇:跟我学制作“QQ尾巴病毒”(1)    下一篇:也谈%5c暴库的利用  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: Linzi
信息来源: 网络 录入时间: 2005-5-7
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿