“上传漏洞”安全检测网站详解

“上传漏洞”***是目前对网站最广泛的***方法。90%的具有上传页面的网站,都存在上传漏洞。本文将介绍常见的上传漏洞及其防范技巧。 
一、能直接上传asp文件的漏洞 (上传附件页面中对上传类型加以控制)
如果网站有上传页面,就要警惕直接上传asp文件漏洞。例如去年流行的动网5.0/6.0论坛,就有个upfile.asp上传页面,该页面对上传文件扩展名过滤不严,导致***能直接上传asp文件,因此***只要打开upfile.asp页,直接上传,asp***即可拿到webshell、拥有网站的管理员控制权。 
除此之外,目前已发现的上传漏洞,还有动感购物商城、动力上传漏洞、乔客上传漏洞等,只要运行“明小子Domain3.5”,点击“综合上传”,即可看到这些著名的上传漏洞。 
像明小子这样的上传漏洞利用工具如今还有很多,例如上传漏洞程序4in1、动易2005上传漏洞利用工具、雷池新闻系统上传漏洞利用工具、MSSQL上传漏洞利用工具等等,使用此类工具,只需填写上传页面网址和Cookies,即可成功***网站。 
【防范方法】:为了防范此类漏洞,建议网站采用最新版(例如动网7.1以上版本)程序建站,因为最新版程序一般都没有直接上传漏洞,当然删除有漏洞的上传页面,将会最安全,这样***再也不可能利用上传漏洞***了! 
如果不能删除上传页面,为了防范***,建议在上传程序中添加安全代码,禁止上传asp\asa\js\exe\com等类文件,这需要管理者能看懂asp程序。 
二、00上传漏洞 
目前网上流行的所有无组件上传类都存在此类漏洞——即***利用“抓包嗅探”、“ULTRAEDIT”和“网络×××”等工具伪造IP包,突破服务器端对上传文件名、路径的判断,巧妙上传ASP、ASA、CGI、CDX、CER、ASPX类型的***。 
例如***上传了一个***文件(xiaomm.asp空格.jpg),由于上传程序不能正确判断含有十六进制00的文件名或路径,于是就出现了漏洞,当上传程序接收到“xiaomm.asp空格.jpg”文件名数据时,一旦发现xiaomm.asp后面还有空格(十六进制的00),它就不会再读下去,于是上传的文件在服务器上就会被保存成xiaomm.asp,因此上传***就成功了! 
【防范方法】:最安全的防范办法就是删除上传页面。 (多数网站的处理方式:将上传的文件名更名,然后再通过http协议发送与服务器端,这样就可以避免传送过程中00造成的读取文件扩展名的丢失问题。)
三、图片***上传漏洞 
有的网站(例如动网7.1SP1博客功能),其后台管理中可以恢复/备份数据库,这会被***用来进行图片******。 
图片******过程如下:首先将本地***(例如F:\labxw\xiaomm.asp)扩展名改为.gif,然后打开上传页面,上传这个***(例如F:\labxw\xiaomm.gif);再通过注入法拿到后台管理员的账号密码,溜进网站后台管理中,使用备份数据库功能将.gif***备份成.asp***(例如xiaomm.asp),即在“备份数据库路径(相对)”输入刚才图片上传后得到的路径,在“目标数据库路径”输入:xiaomm.asp,提示恢复数据库成功;现在打开IE,输入刚才恢复数据库的asp路径,***就能运行了。 
【防范方法】:删除后台管理中的恢复/备份数据库功能。 
四、添加上传类型漏洞 
如今大多数论坛后台中都允许添加上传类型,这也是个不小的漏洞!只要***用注入法拿到后台管理员账号密码,然后进入后台添加上传类型,在上传页面中就能直接上传***! 
例如bbsxp后台中允许添加asa|asP类型,通过添加操作后,就可以上传这两类文件了;ewebeditor后台也能添加asa类型,添加完毕即可直接上传asa后缀的***;而LeadBbs3.14后台也允许在上传类型中增加asp类型,不过添加时asp后面必须有个空格,然后在前台即可上传ASP***(在***文件扩展名.asp后面也要加个空格)。
【防范方法】:删除后台管理中的添加上传类型功能。 
五、通用防范上传漏洞***秘笈:将服务器端的组件改名 
众所周知,ASP***主要是通过三种组件FileSystemObject、WScript.Shell和Shell.Application来操作的,因此只要你在服务器上修改注册表,将这三种组件改名,即可禁止***运行、防范******了。这一招能防范所有类型的上传漏洞,因为即使***将***成功上传到服务器中,但是由于组件已经被改名,***程序也是无法正常运行的! 
具体而言,需要将FileSystemObject组件、WScript.Shell组件、Shell.Application组件改名,然后禁用Cmd.exe,就可以预防漏洞上传***。
预防和测试方向:
1、 客户端:
1) 对上传附件的格式进行判断,限制上传格式的类型。防止直接上传***。
2) 上传附件提交时,对附件重命名。防止上传附件名称中00形式(扩展名前添加空格),过滤掉00后的扩展名而上传***
2、 服务器端:
1) 对上传的附件mime信息加以验证,判断上传内容的真正格式,防止上传***程序扩展名修改后,客户端无法识别而上传***。(由于客户端判断不能上传文件的真正类型)
2) 对服务器端的运行程序加以控制。见上文中“五”。
摘自D.L 博客  www.dlblog.tk