发新话题
打印

安全基础知识 细说暴库的原理与方法

本主题由 水晶王子 于 2008-5-20 22:44 提升

安全基础知识 细说暴库的原理与方法

SQL注入流行很久了,我们找漏洞注入目的无非是想得到数据库内的东西,比如用户名密码等。(当然mssql数据库还可以借此获得权限)。如果我们不用注入就可以得到整个数据库,不是更好吗?于是暴库成了一个比注入更简单的的入侵手段。  有关暴库的方法,高手们常在入侵文章中提高,但多是一笔带过,有些就某一个方法谈的,也多是就方法进行探讨。最近有一篇《再谈%5c暴库的利用》文章,算是对暴库进行了一些总结,因而在网是流传很广。但仍没有谈及原理,而且结论也只是就于经验,似是而非,于是决定来谈谈暴库的原理与规律。
6 s- a7 S* h# Q! z% S7 s  一,关于"%5c"暴库大法:
# x! U3 w! k. {$ S2 o/ t. B, T6 A  这种方法被认为是暴库绝招,很是流行了一阵(随着知道的人多了,防备也加强了,没以前那么有效了)。这种方法,简单点说就是,打开网页时,把网址址中的"/"换成"%5c",然后提交,就可以暴出数据库的路径。+ Q2 N( y9 n/ ~% R& ?7 K4 z8 S3 k
  实际上,并不是所有网址都有效,需要"asp?id="这样的网页地址(表示有调用数据库的行为),如果你确认这个网页有调用数据库的,后面不是这样的也可以,比如chklogin.asp等也可以。(当然,也还有其它条件,后面再谈。)& G1 }* v4 I$ g/ L* `
  先举个例子,* v. E9 [5 x% O
http://219.237.81.46/yddown%5cview.asp?id=3
& S& L( R% Y+ i* H  把第二个"/"换成"%5c"
/ _% |' X" y6 j$ g& j, r
http://219.237.81.46/yddown%5cview.asp?id=3
/ ?& R# o/ E4 D3 G1 h% C  提交后会得到如下结果:

0 U4 [& i  k4 k& E/ p# d  Microsoft JET Database Engine 错误 ’80004005’2 M. l% \- n( U9 L" ?& o" u
  ’D:\111\admin\rds_dbd32rfd213fg.mdb’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
5 W% R7 b* b$ P. ]4 T) p, }  /yddown/conn.asp,行12
' m& D: T* t  {# K! A  (说明:这是黑防实验室的一个网站,暴库是他们故意开放的,因为它的关口不是注入,而是进入后台后如何获得shell)。: y* {/ O0 t3 V8 r1 I
  现在很多人都知道这个方法了,我就不多举例了。但清楚暴库原理的人估计是不多的。有人成功,有人不成功,《再谈%5c暴库的利用》一文总结说,须变换第二个"/"为"%5c"才行。很有实用性,但这个结论只是一种经验,其实并不正确。让我们先看看它的原理 "%5c"暴库法,它不是网页本身的漏洞,而是利用了IIS解码方式中的一个特性,如果IIS安全设置不周全,而网页设计者未考虑IIS错误,就会被人利用。
5 q4 B. j" M* F, ~( I  为何要用"%5c"?它实际上是"\"的十六进制代码,也就是"\"的另一种表示法。在电脑中,它们是一个东东。(十六进制转换图)6 z/ s7 z! s. L4 t# D9 Y9 G0 \
  但提交"\"和"%5c"却会产生不同的结果,在ie中,我们把下面第一个地址中的"/"换成"\"提交:
9 f- i6 W& m# J1 O  J& n
http://219.237.81.46/yddown/view.asp?id=3

( |0 V! [2 Z3 M8 W9 B$ _  http://219.237.81.46/yddown\view.asp?id=3
; U3 m8 {$ h) i; Y# o* \  二者的访问结果是一样的。ie会自动把"\"转变成"/",从而访问到同一地址。( Z& t# F9 q3 |4 d% G
) t' v, b+ O" R" y
  但是,当我们把"/"换成十六进制写法"%5c"时,ie不会对此进行转换。地址中的"%5c"被原样提交了。这是抓包结果:

/ @2 P' N7 ]4 m  Q; U  GET /yddown%5cview.asp?id=3 HTTP/1.1
5 @" u# O3 ^# P3 x3 g  当IIS收到后解析时,又会将%5c还原成"\"。这样,iis中网址的相对路径就变成/yddown\view.asp。这一点很重要。问题正是从这里开始的。1 p- R9 d7 P5 ]7 ~
  在ASP网页中,凡调用数据库时,都会用到一个连接数据库的网页conn.asp,它会创建一个数据库连接对象,定义要调用的数据库路径
1 e0 u" S  Y8 _一个典型的conn.asp如下:
( D8 G- B5 m9 D* O$ y  b* o, V2 ]
  <%7 x2 }( q7 h5 |% h4 Q2 E
dim conn9 Y. ^, P1 U8 l$ c4 P
dim dbpath# S+ W% T3 u( {4 p* z7 n# Q" y+ G
set conn=server.createobject("adodb.connection")* D, i$ R/ x8 n1 R3 E. O, v
DBPath = Server.MapPath("admin/rds_dbd32rfd213fg.mdb")
; f8 n5 L/ M8 Y5 iconn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath. C) E9 [* L: T9 F  x) ?& d3 q& B
%>

" m2 _1 U1 Z, J& K: r  X3 I! u3 H0 p9 q: o  t4 Z; x) m5 l
[ 本帖最后由 liuchun121 于 2007-12-20 15:44 编辑 ]

TOP

大家注意第4句:DBPath = Server.MapPath("admin/rds_dbd32rfd213fg.mdb"),Server.MapPath方法的作用是将网站中的相对路径转变成物理上的绝对路径。为何要这样?因为连接数据库时,须指明它的绝对路径。(这里可能有人不明白,什么相对路径、绝对路径?IIS为了不让访问者知道真实的实际路径,并且确保网站不因变换地址而影响使用,它采用了一种相对路径来表示目录与文件之间的关系。也就是网址目录只表示从根目录起的相对位置。
! w: |& M4 O; k% ^  比如:上面的网站中,网站:http://219.237.81.46的根目录为:"D:\111\"雨点下载目录则在根目录(D:\111)内的"yddown"下,我们网站访问该站时,就是在访问D:\111\yddown\目录,而http://219.237.81.46/yddown/admin/,它只表明了admin与yddown这个目录的相对关系,把这个网站放在e:盘,也一样不改变admin位于yddown目录下的关系。+ F7 [) ]3 y8 _/ g* c7 P
  当Server.MapPath方法将相对路径转为真实路径时,它实际是三部分路径加在一起得到真实路径的:网页目前执行时所在的相对路径,也就是从网站物理根目录起的相对路径,比如上面例子中conn.asp处在从根目录起的"/yddown/"下;然后调用的数据库的相对路径是admin/rds_dbd32rfd213fg.mdb,这样就得到从根目录起的完整相对路径:"/yddown/admin/rds_dbd32rfd213fg.mdb"。
# x6 T; i+ `! |9 M% I+ `0 y  这些都只是相对的路径,如何变为真实路径呢?1 f; h2 ~' }4 l! j
  设置过iis的人都会知道,每一个网站,都必须指定它在硬盘上的物理目录,比如上例中,网站根目录所在的物理目录为:"D:\111",Server.MapPath方法正是通过把"网站根目录的物理地址+完整的相对路径",从而得到真实的物理路径。这样,数据库在硬盘上的物理路径是:d:\111\yddown\admin\rds_dbd32rfd213fg.mdb。
- a6 o3 N+ r" r4 {, _1 b5 s, v  在这里,IIS以"\"表示真实路径的目录关系,而以"/"表示虚拟路径,这可能就是IE会自动把我们地址中的"\"转为"/"的原因吧。
5 \, D' N( a7 l2 C
  明白这些,我们再来理解暴库就不难了,当我们提交http://219.237.81.46/yddown%5cview.asp?id=3时,view.asp调用conn.asp后,得到的网页相对路径是这样的:/yddown\ (见上),再加上"admin/rds_dbd32rfd213fg.mdb",就得到"/yddown\"+admin/rds_dbd32rfd213fg.mdb。在iis中,"/"和"\"代表着不同的意义,遇到了"\"时,认为它已到了根目录所在的物理路径,不再往上解析(为何不再往上解析?后面还会分析的),于是网站的完整相对路径变成了
, c" e  ~" K4 p/ R  t:"admin/rds_dbd32rfd213fg.mdb",再加上根目录的物理路径,得到的真实路径变成:"D:\111\admin\rds_dbd32rfd213fg.mdb",而这个路径是不存在的,数据库连接当然会失败,于是IIS会报错,并给出错误原因:& f/ Z  }5 B! S( n
Microsoft JET Database Engine 错误 ’80004005’
/ l. V: Q, \& r) Z3 ^  r
  ’D:\111\admin\rds_dbd32rfd213fg.mdb’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。2 r  j1 t/ Q3 Z
  /yddown/conn.asp,行126 O! e6 V9 ]6 t- z. T+ y
5 E/ k1 P7 |/ F/ |" A( t9 |
  这就是暴库语句的来历。
0 p  {( j/ m. G6 E( w. G! B
  《再谈%5c暴库的利用》一文中说,必须是网址中的第二个才可以成功,第一个不行。我们从理论上来分析一下,看到底有无规律:
, P0 L( M7 q) v( _$ T 还以上面网址为例,如果将第一个"/"换成"%5c",得到的网站相对路径变成\yddows/admin/rds_dbd32rfd213fg.mdb,解析到"\"时,认为已到物理目录,不再往前解析。而事实上,它确实也是根目录,所以得到的物理路径为:"D:\111\dydow\admin\rds_dbd32rfd213fg.mdb"2 V; N2 J4 g# I) h, n, p- W( I
这个路径是正确的,所以不会出错,当然不会暴出数据库路径。
( U5 b" p" b' b$ Z0 h! \2 s9 T
  第二个个"/"换成"%5c"的情况,我们上面已作分析,那是不是真的就第二个可以暴出呢,事实上,它只是因为二级网站较为常见,并不是真理。如果这个下载系统是某一个网站中的三级目录,变第三个也是可以的。有时,变第三个成功的可能性更大。也就是说,最右边第一个成功可能性大。$ f$ M$ k1 W6 ~' p- [) v9 c
  不信?我先举个例子,再说原因:
2 {" Z( O  F" o, d, n) I
$ v' L* I3 V0 d
http://nice.xmu.edu.cn/channely%5cblog/showlog.asp?cat_id=31&log_id=246' u0 [4 r  b3 B" T

1 k8 k( o% O- \  r& P% }  这个网址,变第二个"/"为"%5c"时,网站打开很慢,但没有出错。$ B6 V4 r9 o7 z  S" F1 T
' Z: |( g  I. }5 {3 U1 y
  当我们把第三个"/"变成"%5c"后,提交:7 ]4 b5 T( O, l! b+ d! c1 M

; i/ i8 J" J5 k: U/ m5 A  
http://nice.xmu.edu.cn/channely/blog%5cshowlog.asp?cat_id=31&;log_id=246
1 A! _6 g% o( v) ~; ], ?) P7 d
4 y% C, }% v- q  可以看到,数据库暴出来了!5 A% [- u0 @7 n/ e/ E) s1 B# \( `

. m. X! r4 G/ l# z! }* N  Microsoft JET Database Engine 错误 ’80004005’
" v% p+ ?. R/ ^
9 V' z8 l, J. |9 w  ’H:\channely\log_mdb\%29dlog_mdb%29.asp’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
, a; V6 T5 Z( T% w
4 h- ^1 N* ~: @$ R1 Z& C) d  /channely/blog/conn.asp,行181 M# I& h/ |* P( Z/ ?

) H1 E- j" ^; z4 m  f3 C0 @: M* n$ t( N# k# G# w
[ 本帖最后由 liuchun121 于 2007-12-20 15:45 编辑 ]

TOP

为何这样?
+ q6 K: n/ n' M! m' X4 J) O) j: H  m
; m" `! f! s6 O6 _/ c% J  这是因为网站内用了虚拟目录,也就是说这个网站的子目录channely并不在网站根目录内,设置过IIS的人会知道,可以将网站目录外的一个真实物理目录设置为网站的虚拟目录。也就是说,网站的相对对径并不总是从根目录算起,很可能在某个子目录就指向了物理目录。
% ]7 u2 `! M. S  S8 f
  上面的结果很显然:channely已位于H:盘的根目录上,上面再没有目录。事实上,很可能网站在d:盘或e:盘,而通过IIS中设置channely虚拟子目录指向网站根目录以外的"H:\channely\",这里,我们可以更清楚的看到,微软iis为何没有到根目录,只要遇上"\"就认为已到物理绝对路径,不再往上解析的原因,就是为了处理这种网站虚拟目录与根目录不在一起的情况。它优先查询每个目录是否指向了物理路径,如果指向了,则把它换成绝对路径,而它上面的相对地址不再解析转换。% ~8 f) H0 N7 |) Z9 N
& H; V9 i: p# _: b' n8 B
  从以上分析可知,我们只有在数据库相对地址和它的目录绝对地址之间使用"\"("%5c"),才能达到目的。上例中,如果在第二处使用,它只会影响到IIS寻找虚拟的channely目录地址,而conn.asp中解析出的数据库地H:\channely\blog、log_mdb\%29dlog_mdb%29.asp仍是对的,当然不会暴库。+ B) Y/ d7 f* r1 X# o

7 h& r4 s( O1 G& K8 p6 {  《再谈%5c暴库的利用》中还说了一种针对只有一级目录的解决方法:& D7 @; l" }' G- u* j( ^

* b! Z: t4 a. S: D& v7 V; w0 ^2 ~  "其实一级目录我们也同样可以成功的,我们可以通过构造一个多级目录来达到暴库的目的。* e# B5 M1 I% v5 z0 y
  如下:
: I  f* z; r1 Q& Q3 G
http://www.target.com/noexists/..%5clist.asp?id=1
; Z! ?* U8 \% _) ~! k9 |% M# u; T/ O1 t
  这样大家就会有新的惊喜了,呵呵。"2 V# N; S% g# \

( x8 l9 A3 W" {6 a3 o9 b/ J  真的吗?从理论上分析,这种方法是不会成功的。因为遇到"%5c"时,不再解析,所以中间构造的目录,不论是真是假,都是不起作用的,被舍弃了,相对路径还是到了根目录,路径不会出错。
% r$ D  e7 r, u7 ]4 R( U- G* t; {' w$ Z8 _( [: B$ u, n$ g
  这个网站我们先用conn.asp方法暴出数据库(后面将讲的),说明服务器和网站设置是可以暴库的。/ d' \% {! y0 _$ I, N- j& c

$ C$ ^3 P) O' g5 ]& ~  u+ I  得到如下结果, \7 \% @, V4 {: [4 L* S6 a: d
" h5 [$ o. r; |' ~
  
http://www.om88.com/abc/..%5cArticle_Show.asp?ArticleID=481
6 m, F3 t6 I8 Z& k7 d2 T, T# B! V5 i1 k' x) t: p# R" ^. R) A- l
  却暴不出库,仍得到正常页面(换成存在的路径结果也一样),但图片无法显示。这是因为相对路径变了,所以无法正确找到图片路径,但绝对路径解析时被"%5c"舍弃了,没有出错,当然暴不出库。
3 S+ P9 Z: r: ^& u5 O+ B# c$ O$ W% I" m( y" V4 q
  二,conn.asp暴库大法
0 T) l( M. l& N% n% u8 D# d% R) v$ S$ i) Q
  这里,conn.asp只是表示数据库调用文件,因为多数都是这个名字(有些网站改名,我们也视同conn.asp)。其实,这种暴库法是最先出现的,以前很多牛人都对此进行过探讨。只是在"%5c"暴库大法出现后,倒较少有人提及。其实个人认为,"%5c"暴大法随着服务器设置安全性的加强,用武之地会越来越少。而conn.asp暴库大法发挥的余地更大,可以人为构造,臭要饭的当年著名的动网大挪移实现暴库,其实也属于此类。, Y7 A% X' A4 ]: o2 d

/ ~! ^* a% h! Q  上面
http://www.om88.com/  ]6 z: u. p1 q$ M

/ U# D% R" w) K& r+ C  一例中,用"%5c"暴不出数据库路径,因为没有二级目录,但用第二种却可以暴出。它是动力系统的。5 O, h* h& g; T9 g, c, l2 Q  {9 ~
我们再来看另外一个ASP系统一个盗帅的例子:_blank>
http://www.51see.org/
/ _8 t# v# T2 d, r- m" y9 b, K, d0 ~! `4 _9 O& p
  提交
0 ]& w: J! d) F. B) W! w. o& T. r) l' \- f/ T, A5 W. y6 Q# V& _; C
  
http://www.51see.org/db/user.asp+ U. m4 m4 `9 F
" c( C) ?$ _. d, z5 a. {6 C+ E" J5 v
  得到如下结果

& g5 c( l  P; q  }$ U( _  "Microsoft JET Database Engine 错误 ’80004005’
3 P( H7 s6 p) E/ M4 M. a* q- T6 _9 N2 I4 \
  ’d:\Hosting\wwwroot\uilady_com\htdocs\db\db\downloadwoaini12345.asp’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。. G/ o+ r5 W6 d; u" }; ~4 P
- Q6 h: K* b/ m
  /db/user.asp,行6 "

" V8 R" f* L* k, A5 n- T
7 m4 i- u  x- u5 P[ 本帖最后由 liuchun121 于 2007-12-20 15:45 编辑 ]

TOP

有人可能会说,这么简单就暴库,好爽!是不是所有网站都可以这样啊?当然不是,已作了防护的肯定不行,没作防护的,要暴库也是有条件的。( i5 o+ T$ K: u' N1 J
0 j! V+ i. O" u, _, Z  j4 h
  如果说第一种暴库法是利用了绝对路径出错,那么,这种暴库法就是利用了相对路径出错。; J( p8 E( }7 E% w

+ {  \+ L4 n: K5 j" [9 D% Q& u/ _  一般来说,只要conn.asp不在根目录的系统,而调用文件在根目录,就会出现这种问题。当然这种说法也是经验性的,准确的说就是,conn.asp与调用它的文件,如果相对位置改变了,就会报错,暴出数据库路径。这样说可能有人不明白,不要紧,接着看你就会明白的。
" K2 H9 P* \) w2 g3 \" V' J( R0 E
  我们从动力文章系统说起:* d2 u3 P$ Y- `0 i+ t5 j, c( R) g: N

$ b5 o8 U. E% P' Q- r4 m" Z8 b  动力文章系统的conn.asp位于系统的inc目录下,而很多调用它的文件在系统根目录下,比如User_ChkLogin.asp等,这样当conn.asp执行时,它是在系统根目录D:\wwwroot\zyx688\wwwroot\下执行的,因此,conn.asp文件中,调用数据库时,它考虑到执行时的目录路径,因而数据库的相对地址写成如下:
( P7 U: `' D; i4 Qdim db
: e. O" j0 G0 \* b5 c
) ^8 @6 _; L0 Zdb="database/fp360609.asp"6 Y* X* |- Z7 O$ g

7 T% |" r$ s  ?( s  这样,当它在系统根目录下执行时,数据库的相对路径为根目录下的"database"目录内。但当我们直接请求它时,它工作的当前目录是在根目录下的INC目录内,这时,数据库的相对路径就变成了"inc/database/fp360609.asp",这样它当然出错。得到的绝对路径中多出了"inc。为了让大家看得更清楚,我们举一个可以用两种方法暴库的网站,比较一下看有何不同:1 u' |7 c+ L! A9 m4 t8 h* L
* h& d3 O' n# m( e# ?
  提交:
http://www.pofen.com/sc/down%5cshow.asp?id=437
, p  Z  {: z( N7 r  \; b. R! Q  得到:
0 o. T$ D! z7 \9 |& g# ~  "Microsoft JET Database Engine 错误 ’80004005’
" n! J! M+ l& t3 w" G: t' E
  g+ |2 f; j0 o% j6 y% T  ’D:\Webdata\pofen.com\sc\db\download.mdb’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。4 s( \8 t0 W) `% i
3 R1 a+ ?  f; r' j6 m' G  Q# N! _
  /sc/down/db/user.asp,行6 "
0 B) O# m7 ^8 q- O! I4 W$ l
) ?7 X7 g3 G0 D4 d) Z3 I  再提交:
http://www.pofen.com/sc/down/db/user.asp
$ E6 }, A* x$ }" W/ p# o/ O9 A4 q3 J8 S3 O3 ~8 R; s; q) u9 N+ f
  得到:
% w! ?% Z4 O, |9 ~. R  "Microsoft JET Database Engine 错误 ’80004005’
6 M6 x( b/ q, D' b+ Q" n! f6 v8 J3 ~' T5 Z& n, W3 y2 b
  ’D:\Webdata\pofen.com\sc\down\db\db\download.mdb’不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
# ?5 y, B- ~2 {1 P& W- O. k, h( B+ h$ i, D
  /sc/down/db/user.asp,行6 "" ]6 R( H( a  @' o8 y

! }4 O. X4 |& Z0 n0 k  两种方法得到的绝对路径,一个比实际路径少了,一个则多了,所以路径错误而报错暴出数据库。' }( x- N- N0 g, q. Y/ V

: k1 [: z. ^. R! n  这两个系统都是因为conn.asp不在系统根目录下,而引起的。(其实这样的系统不止两个)。
- R/ x. T7 C' B, t* q  C) h; Y& s' {! _+ G# q  E, ~* |
  那是不是conn.asp放在根目录,与调用的文件在一个目录下就无事呢?如果在一起,当然没事,但牛人自有牛法子,可以通过构造方法来造成相对路径变化,一样能达到暴库的目的。比如,动网的大挪移手法,将conn.asp移位,从而暴库。当然,实际操作中,因为conn.asp移走后,网站无法工作,所以没有成功。但这种思路还是给很多人启发。如果有一种方法可以复制而不是移动,或者说,移动的不是conn.asp,而是调用conn.asp的其它文件比如chklogin之类的,理论上就可以成功。(当然,如果服务器和网页对暴库进行了安全处理,就是另一回事)。这种方法,当也就是一些牛人把网页存到本地改路径而搞出来的。今天刚看到一个暴动易数据库的最新方法,其原理也是构造错误而达到获得真实路径的目的。
' X! o) I, u: T+ X) u" L. r3 T+ b2 q4 }8 c7 E, x
  三,暴库的防范

* Y6 O8 W# m: m. l- _" H8 b& c  m  说白了,暴库是因为IIS服务器会对每个执行错误给出详细说明,并停止执行,而IIS的默认设置又是将错误信息返回给用户。因此,要避免暴库,就应改变IIS的默认设置,选取错误时只给一个出错的页面,不给详细信息。9 `- E# {+ Z. ^. @9 p4 z

+ x& C" |, @, }  "处理 URL 时服务器出错。请与系统管理员联系。"
* W$ o. N' G( ]) h1 |4 m9 |6 t  其实,作为网站管理者,无法对虚拟主机设置时,只能在网页中加强防范。就是在可能出错的页面加上这一句:
2 n/ R  x) D0 A- {  "On Resume Next",特别是在conn.asp文件中要加上。
6 K' \' @! }! t# I: I# f2 R  它的意思是出错后,恢复执行下面的,也就是不理会出错,当然就不会给出错误信息了。" J3 }; X' v* w
  动易系统3.62版的加上后,现在就暴不出路径了。而天意商务网,conn.asp也不在根目录,但因为加了这句,也暴不出数据库。
: D; p7 G6 }4 J3 C9 C

1 r( O8 x- T! z* x8 a, k[ 本帖最后由 liuchun121 于 2007-12-20 15:45 编辑 ]

TOP

文章很好,但是我看着好晕啊{7E(2)}

TOP

不错

TOP

恩 是个不错的文章 能否在来点 暴库以外的技术文章

TOP

顶!

TOP

学习学习,增加知识
聊天,互动,评论与毒霸生活每一天,快乐并痛苦着

TOP

不错,望继续

TOP

手头正缺少这方面的资料,知已知彼,学习了

TOP

继续就最好了
好好上班,天天上网!

TOP

文章好长啊,先收藏了。还有其他的技术吗?

TOP

支持
`你的电脑?
`呵..
`我的权限!

TOP

TOP

发新话题
本功能由奇虎搜索实现

相关主题

标题 作者 最后发表
"我们的毒霸2008,我们的大讲堂"活动报名帖 alex5288 2007-12-01
点击阅读更多关于的相关帖子  更多相关主题