::  ::  ::  ::  :: 管理

web 上传文件漏洞 原理

Posted on 2008-06-16 05:54 nt05 阅读(1235) 评论(0)  编辑 收藏 引用 所属分类: web
喜欢脚本入侵技术的朋友,一定听说过闹得纷纷扬扬的上传漏洞吧!有许多利用上传漏洞的工具,比如桂林 老兵的“动网上传漏洞利用工具”、“天意上传漏洞工具”等,但是大家在使用这些工具的时候有没有想过它的入侵原理呢?它的背后工作方式是怎么样的?有许多 网站并没有打上传漏洞的补丁,为什么无法利用漏洞上传成功呢?今天我们将给大家一个答案,而这个答案依赖一个简单的工具WSockExpert来实 现。  
    一、WSockExpert简介
        WSockExpert是一个抓包工具,它可以用来监视和截获指定进程网络数据的传输,对测试网站时非常有用。在黑客的手中,它常常被用来修改网络发送和接收数据,利用它可以协助完成很多网页脚本入侵工作。
        WSockExpert的使用原理:当指定某个进程后,WSockExpert就会在后台自动监视记录该进程通过网络接收和传送的所有数据。在进行网页脚 本攻击时,我们常常会利用到用户验证漏洞、Cookie构造等手段,在使用这些入侵手段时,我们先用WSockExpert截获网站与本机的交换数据,然 后修改截获到的网络交换数据,将伪造的数据包再次提交发送给网站进行脚本入侵,从而完成攻击的过程。
    二、WSockExpert的使用 
    ****************************************转载***************************************   

今天无意中浏览了一个商业网站,我不怎么喜欢浏览商业网站和政府的网站,突然有个想法想对这样的大型商业网站进行一次测试,我想这样的网站服务器应 该能很安全,看了一下时间,20:47还早,下面浏览一下这个网站的结构,找到了http: //www.trager.com.cn/index.asp?id=14这样的一个界面,在后面加一个单引号http://www.traget.com.cn/index.asp?id=14'回车后出现,(图一)

  没有过滤单引号,有SQL INJECTION漏洞,下面我的思路是SQL注入漏洞拿到网站后台管理员的帐户,然后进去上传一个ASP木马,先用工具找一下后台再说,看有没有什么漏洞,果然不出我所料,找到一个上传图片的界面,如(图二)

  看一下源码,发现有上传漏洞,跟前些日子的6KBBS的上传漏洞一样,都是filepath变量的问题,如图(三)

  下面进行上传ASP木马,选择好要上传的ASP木马,但不要点上传按钮,如图(四).

  然后进行WSockExper抓包,如图(五)

  回到IE中来上传文件,点“上传”按钮后,提示出错,说文件上传发生错误,文件格式不正确,这个是预料之中的(能直接上传成功才怪呢).

  回到抓包软件中来看看抓包结果吧,WSockExper把我刚才的提交过程全记录下来了(图六)

  把第三行和第四行复制到文本文件中,注意回车也应复制进去。保存为2.txt(图七)

  下面我们来修改这个文件. 我们改文件名,找到filename="D:\Documentsand Settings\Administrator\桌面\wenzhang\shadow.asp"这一句,把ASP文件的后缀名改成图片格式的,如图 (八) 然后在要上传的目录后面加上要保存的文件名,然后在文件名后面空一个空格,如图(九)

  现在拿出UltraEdit-32,打开2.txt,找到/upload/shadow.asp这一字串,点编辑-->HEX功能-->HEX编辑:在OD前把与空格对应的十六进制代码20改为00(图十),保存退出。我们要的数据就成了。

  下面就是提交了。

  打开CMD,进入有NC的目录,用NC以如下命令提交我们的数据:

  nc www.traget.com 80 <2.txt

  很快就返回提交成功的信息,告诉我们“软件上传成功!”并且告诉我们软件的路径和文件名:“upload/shadow.asp”。(图十一)

  还等什么,我们到IE中去看看自己的成果吧,看我们的ASP文件到底传上去了没有?在IE中打开http://www.trget.com.cn/upload/shadow.asp,看,多么熟悉的画面(图十二),有了它,什么样的ASP后门不能上传呢? 漏洞的原因动网的漏洞多数人知道,所以现在不少网站已经修补了这个漏洞,但对于文件名,有些程序却没有考虑到。

  其实,这个漏洞,在原理上同动网漏洞是一样的,都是利用电脑在读取字符串时,遇到“\0”(00)时,认为字符串结束了,从而丢掉后面的字串。 这一电脑特性也不知算不算漏洞,正如UNICODE编码特性一样,可被人利用。尽管在这里网页过滤了路径,但仍从用户处接收文件名,我们同样可以在字串中 构造“\0”,又在结尾处构造gif,因为扩展名是从右读取的,它认为文件类型是gif,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读 取的,当它遇到“\0”时,后面就都丢掉了,于是文件就被保存成我想要的shadow.asp了。我们学习入侵时应了解一个漏洞的实质,灵活变通,一样能 达到目的.


一般的做法都是:首先抓包,抓到包后用ue修改,把20改成00,然后修改包长度,最后用nc提交。做法很简单,好多人都成功过,但是原理方面还不是很清楚。这里我简单说下

由于我自己发布后也没有留下教程,自己后来重新截图了一个,大家将就一下看看。

我们看看截图。这里最主要修改两处。一是扩展名。把asp改成jpg,然后看这个目录

newsimg这个是文件上传后默认的放置目录。我们对他进行修改。一般的朋友会这么修改

newsimg/m.asp_
这里为了大家能看清楚,我把空格用下划线表示了。为什么这样就可以绕过验证呢?我们一起来看看。

上传漏洞的一个原理就是字符截断。如果我们修改了目录,上传后的文件完整路径就是

newsimg/m.asp_/newmm.jpg一般这里的jpg文件名会做更改,我这里就不考虑那么多情况了

大家看这个完整的路径。这里如果有空格,我们是不能成功的。但是我们用UE类的编辑器,来对空格进行处理。把20(也就是空格字符的16进制)改成00(也就是一个截断字符的16进制)这样以来。截断字符后面的都会被截断,也就是忽略掉了。所以这个就变成了
newsimg/m.asp达到了我们上传asp文件的目的。这个就是为什么把20改成00的解答。