查看: 213|回复: 0

Radware IPv6链外天窗案例-百度地图外链解决方案(二)

[复制链接]
  • TA的每日心情
    奋斗
    2022-7-25 00:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    5万

    主题

    5万

    帖子

    16万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    167923
    发表于 2024-1-6 12:30:50 | 显示全部楼层 |阅读模式
    ) ]& P2 Y) w( L2 s& b& z- \9 u; H

    Radware IPv6链外天窗案例-百度地图外链解决方案(二)来啦!

    ' @& f0 ]7 Q2 a( B8 {

    百度地图外链解决思路

    - k, F& [! T% m

    这个是我们在某证券的IPv6测试中总结出的一个案例,因为这个外链天窗解决的过程和解决的手段都足够复杂,可以为大家提供更多的解决思路。但凡遇到百度地图这种外链的事情,该手册一定会起到相当大的辅助作用。(VS即Virtual Server 虚拟服务)

    : ?9 p/ @. M4 R3 p

    先看基础的配置:

    , P' a3 [" O8 X) Z' I% {
    0 m% g' p+ [, ^0 t
    $ P$ N1 B; a8 b8 Z' A& d
    $ X1 l; t5 f' R" X" n

    主站VS——v6 转 v4

    % u6 f+ t5 E& D

    /c/slb/virt ipv6

    1 B4 b& B- p. m6 `

    ena

    / r9 G! b8 \& F$ S1 r

    ipver v6

    + f: N( K5 M2 T |

    vip 240e:644:100:0:0:0:0:7

    / Z1 d0 x" c, ~

    rtsrcmac ena

    5 t" X' o1 Y# r& p* m& u% I

    dname "inherit"

    1 X5 m. \4 z+ s% c

    wanlink "ipv6"

    6 ?8 ~* ?2 M+ D

    type wizard

    2 |; s, \/ ?& H0 [0 Z ~$ r0 E

    /c/slb/virt ipv6/service 8088 http

    1 g9 g7 A: ~* O1 }5 J- ]) `

    group test

    : l' s! w2 F, n- H2 c8 K6 g

    rport 80

    2 J. W- c H/ D' C2 u/ ~! X+ l

    dbind forceproxy

    ; G% @* h4 y" [" g3 J# h& _

    /c/slb/virt ipv6/service 8088 http/pip

    ; u4 N- t- C( c2 g8 W

    mode address

    9 r3 x {. S. Y2 A2 R6 ~8 K* P

    addr v4 58.56.105.10 255.255.255.255 persist disable

    ! q( A0 i. G5 {4 ~

    /c/slb/gslb/network 100

    % g4 V0 Y; W, c& x. f& w* s& r) X+ W

    ena

    4 E! T0 v! ~) w' g

    ipver v6

    6 T; K u9 }1 Z# _ {

    sip 0:0:0:0:0:0:0:0

    & K) l: @# A8 Y- H' Y% X

    addvirt ipv6 65535

    ; o$ a) Y/ c5 B0 W! c! H

    /c/slb/gslb/rule 100

    & R4 o& _" ?4 Z% c( a, \! I% q9 ]6 ^5 u

    ena

    * j9 T+ @6 h2 X3 i; `! z- ^- ?5 W3 T

    type inbound-llb 8088

    $ C& s. F3 G. H, p/ @- ~% \8 k, p2 o

    ttl 0

    0 _+ V0 |( I: ~1 I

    rr 1

    % O3 K1 N9 s0 O) D

    dname "www.easysino.com"

    % p7 v, R& z) f5 ?6 r

    /c/slb/gslb/rule 100/metric 1

    # f1 [; f5 d) r+ o9 M! \" M

    gmetric network

    , i* J/ t" Z! G* x" E' `

    addnet 100

    0 }& `1 x1 p+ n* O+ d A3 g5 [' w. J

    /c/slb/gslb/rule 100/metric 2

    p" L7 @$ c/ {

    gmetric proximity

    & z; F1 i' q9 m

    /c/slb/gslb/rule 100/metric 3

    5 R# B% n- K' {

    gmetric bandwidth

    7 h. g$ q6 }- y3 K
    7 x% s" V' m/ E* r$ D$ O
    4 f2 T7 c3 a* w
    ' ?$ L/ I K3 \' S9 }# ^

    这个是主页的地址(240e:644:100:0:0:0:0:7)和解析(www.easysino.com),这个主页中的某个子页面下有一处外链了百度地图(api.map.baidu.com)(VS即Virtual Server)

    e% t6 b" i' Y* Z$ \3 A

    创建修改策略,关联主站VS

    7 X) v2 d4 g- J/ s, Y$ a
    $ f/ }+ v8 v% q _/ }" u7 D
    9 z& j2 @* J+ _: ~# K
    ) h8 I. W" E7 I/ L/ a
    " q7 ]) b+ C4 b1 ~1 ]2 x

    创建修改外链的策略

    : Z% M. F, t& k6 j

    /c/slb/layer7/httpmod 1

    + P( F% `& e7 E/ {( _: J/ l

    ena

    : C2 S/ v, P0 v

    /c/slb/layer7/httpmod 1/rule 2 text

    ' A: T, Q) b$ L3 L/ a* K8 g

    ena

    , O2 `! b2 E( f" t

    body include

    0 V/ s; \' W3 L5 R3 {& Y

    action remove "TEXT=Accept-Encoding: gzip, deflate"

    - ` k, \+ ]& G! D% i- N% v# D9 \% ^

    /c/slb/layer7/httpmod 1/rule 3 text

    # Y* B" D8 m( ~# P& X: K0 D1 t

    ena

    : u; v1 I% D8 K+ O$ \

    directn resp

    ( z, w: d! Z4 |: V1 c

    body include

    9 }4 d" D% X& Q( l$ F1 l. c

    action replace "FROMTEXT=http://api.map.baidu.com" "TOTEXT=http://map.95538.cn:8088"

    " o4 Q$ p) y7 s8 Q$ y

    将 httpmod 关联至主站VS

    4 h# _1 W3 p: e

    /c/slb/virt ipv6/service 8088 http/http

    % P3 o8 k8 N$ J0 L( I+ H

    httpmod 1

    4 Z8 P9 _2 }' }7 H7 \
    1 |7 ]) ?4 U! v, y1 I4 e6 h( O j
    Y; r0 `& ~5 s1 c& p
    & q" g! w, M ^1 |2 x+ a

    该策略使得主站可以返回修改后的域名,客户端请求到该域名就相当于请求到链路负载上的某个VS,即外链VS。

    2 n' Z# f# ^' i( q' X6 e! k3 A

    2.1.是基于域名的外链

    / _+ S/ q* Y0 \8 x/ t/ M; i# s

    然后我们还要创建外链VS,以及外链VS的解析(map.95538.cn)

    ( j' P( `+ I6 z# }9 Y

    (通过Alteon自身去ping api.map.baidu.com得到外链的地址,real及group部分的配置不再展示)

    " e# ~6 R4 J' j. J! z& J
    1 o6 w& t+ @; E3 R% _
    % z8 Y% i% [. f" u
    # T; V1 U* Y: ]

    外链VS——v6 转 v4

    6 ~: k% q( n; d! K. B

    /c/slb/virt baidu_map_api

    n9 Q1 I6 Y4 p7 D

    ena

    - t2 m1 J# Q( X: b& l$ j

    ipver v6

    0 O- P* m0 g$ ~0 o- O& k+ `

    vip 240e:644:100:0:0:0:0:16

    / J9 f+ ]5 b ~- ~4 q* ^

    rtsrcmac ena

    & P1 r# V' x/ }$ U' D" }' Z: B% ~: E

    dname "inherit"

    ! x4 g, o2 K" s: I

    wanlink "ipv6"

    / p4 G; g. ?8 a. u) c3 t

    /c/slb/virt baidu_map_api/service 8088 http

    ) P& L$ }4 _4 w' T5 j

    group baidu_map_api

    $ ^ a: l' x7 X3 T% p6 G! Q4 \

    rport 80

    0 C9 M) t+ K( |* y- ? k4 O

    dbind forceproxy

    ( ~/ k6 V/ p% z( y. h! }0 A. R

    /c/slb/virt baidu_map_api/service 8088 http/pip

    ( c4 o4 Z" t5 w0 e% E0 _: j# b) ^

    mode address

    2 P1 B+ A$ b* E6 F

    addr v4 58.56.105.10 255.255.255.255 persist disable

    $ S1 h1 X1 d8 V H

    /c/slb/gslb/network 110

    5 ?# H, ^2 K* S1 }1 B5 ~

    ena

    % [3 ]3 e* P$ G0 x6 T/ S* \

    ipver v6

    + K+ a5 c& D: \' P8 O

    sip 0:0:0:0:0:0:0:0

    ' Z0 Y, u+ ]4 f1 ]8 o$ _! u4 i

    addvirt baidu_map_api 65535

    % z' _" U" g2 W

    /c/slb/gslb/rule 110

    ! K. U4 w5 }1 S; O# t

    ena

    4 Z; j/ V; ]* @# P

    type inbound-llb 8088

    % H' |# D% P* @6 `' `! I" Y9 v

    ttl 0

    9 }+ ]' w6 [' r& m/ f* y, O% Z7 u5 K

    rr 1

    ( w! V4 Q; O8 r6 A1 v; w6 U

    dname "map.95538.cn"

    + M8 w$ [* d6 O( F

    /c/slb/gslb/rule 110/metric 1

    + L1 _/ y7 q' x; b( H

    gmetric network

    4 d7 s0 C) V3 Z6 ~4 C6 r ~! J: G6 @

    addnet 110

    0 ]4 V J+ D' x# N# e

    /c/slb/gslb/rule 110/metric 2

    - G% ^; }, f( ]$ W8 \9 L* H2 D

    gmetric proximity

    . B; s1 i3 R+ v

    /c/slb/gslb/rule 110/metric 3

    " N* y. Z: m. s1 P& `* J' d

    gmetric bandwidth

    ) \* H, X0 s& T9 y- s6 T1 W8 ]" y
    " V7 t* Y8 w, }' c( `; U' Q
    & m6 S0 U, d _4 T& f/ h r" n
    0 a }$ p6 q& O: a( [

    请求该外链当然还需要修改request请求头中HOST的值,否则百度地图API会返回503。

    % _; x R, l. |* g2 A
    ! t6 T# l4 L/ {& a A
    , ~9 p6 } N: z. @
    8 g6 K6 _% k$ A

    创建修改HOST的策略

    % q0 e( G$ q* T7 k1 F. f- n2 J& F

    /c/slb/layer7/httpmod 2

    4 t3 D* Y( {3 _# V

    ena

    ) Y) m: b0 m5 u8 ^

    /c/slb/layer7/httpmod 2/rule 2 text

    0 r) w6 n& F5 k5 |* C! g) D

    ena

    y# ^2 @' ]* `5 X% n J

    action replace "FROMTEXT=map.95538.cn:8088" "TOTEXT=api.map.baidu.com"

    # t2 o1 D, W& R2 l( Y8 c( ~

    将修改HOST的 httpmod 策略关联至外链VS

    * h( X" P2 B$ ]& }3 l; i

    /c/slb/virt baidu_map_api/service 8088 http/http

    & P+ d# S) y6 d

    httpmod 2

    ) R5 @) `) |( {! y" N& Z
    ! E9 A; E) }; x; {6 a
    3 U$ ]2 J7 a1 O( |
    - J) A! |, g" j7 W" h7 ?

    正常情况的外链到这一步基本就结束了,但是,百度地图API的外链才算是刚刚开始。

    4 ~$ G' P) m, c/ S1 @! w) L

    2.2.外链返回的外链

    2 R r( R4 y @! u) E5 I7 W* |

    百度地图API的这个外链,并没有将地图信息回传给我们,而是又返回了两个外链,当然同样是(api.map.baidu.com),只是uri信息不同。

    0 v: x) _$ |, v
    ' \& t6 m3 F' p0 q

    上图展示的是原网站的信息,而实际的情况除了第一条被修改成了(map.95538.cn:8088),后面两条还是(api.map.baidu.com)。当时的抓包信息:

    6 c1 P5 |! Z, Q$ G2 L6 d6 z$ ]
    9 f2 P3 O0 z- N

    我们的modification没有将后续的(api.map.baidu.com)进行修改?而且通过这个包我们还可以看到respond信息中还有一条Set-Cookie……

    t2 ^( N' d6 ], Q- i

    针对外链回传的外链没有被修改的问题,我们通过httpmod进行了各种尝试,包括将text修改成url,包括将相同的text创建两条,均没有任何效果。

    # {7 L1 `3 C$ [$ i& d6 |9 x# b

    2.2.1. http modification性能的不足和异常

    + j1 j# g; R9 Z! P

    性能不足:无法对外链返回的外链进行修改

    + M* _( ~% p- r! `# V- m

    异常:http modification修改request后,会使得request发生两次,导致服务器间歇性返回 400 bad request。

    % C- v: Z5 A* M- j
    + d( }/ E3 o/ R% I

    我不是太确定产生两次GET的原因是modification本身的缺陷,还是跟Alteon软件版本有关,可以确定的是,这种情况在31.0.6的时候是没有的。而且,如果不把客户端request请求头中“Accept-Encoding:gzip, deflate”删掉,这种情况是不会出现的。

    6 q |" v/ x$ a

    但因为400 Bad Request,并非只发生在此处,而是但凡关联了httpmod 的VS都会有这种现象发生,而且频率非常高,造成了非常差的体验感。

    . V/ }7 r/ Y2 C$ k, h+ s2 p

    2.2.2. 使用as++替换http modification 解决性能不足和异常

    4 p0 y( ], l+ s6 V& Y8 R: ~

    抱着侥幸的心理,我们使用as++将modification 策略替换掉了

    + z- h4 W1 K7 v0 a! O: p* `) R$ C
    - O) h# z# r, U; `/ E7 j
    9 e! ?8 f; k( \" v9 a% e
    5 [ a6 ^6 O1 B+ _# O5 n" B3 `+ H

    主站VS下的as++

    + r. H# e7 K1 o! c) O8 N+ J8 ?

    (CLIENT_DATA相当于HTTP_REQUEST)

    4 r! V. b( f* G1 H) ?5 [+ ?

    (SERVER_DATA相当于HTTP_RESPOND和HTTP_RESPOND_DATA)

    8 F% @' @4 E! y, x& O v$ s

    /c/slb/appshape/script http_body_ipv6

    ! i! ]; `9 l1 C, f- n( ]

    ena

    $ v/ n( j3 j- q6 f

    import text

    1 F r7 N9 J" ~4 `8 T0 E

    when CLIENT_ACCEPTED {

    , O7 q) h1 V0 e& e

    TCP::collect

    4 J# j; j) R9 F* [+ \- s

    }

    + Z+ G% Y/ x/ X s

    when CLIENT_DATA {

    & x9 A4 X2 B0 {; k) f) K

    set re_gzip "Accept-Encoding: gzip, deflate"

    4 i R+ A5 s, Q4 E* Z9 t+ ?) |

    set re_null " "

    1 R: i0 p3 ]$ A: k" |

    set j [TCP::payload find $re_gzip]

    ' f: j3 F0 X7 i1 D8 F7 D q

    if { $j != -1 } {

    i8 k0 n, W4 [5 L5 Z

    TCP::payload replace $j 30 $re_null

    ' F2 q- q+ P& `7 K' |

    }

    8 J. j" N* p' F

    TCP::release

    + b3 p k" ]7 p1 G

    TCP::collect

    $ S2 g; {# G$ {

    }

    % v2 n; m, Y# j

    when SERVER_CONNECTED {

    $ y+ [) H7 e- H! q) u& u

    TCP::collect

    " b- D2 ~' u" Q& \7 B

    }

    * ?! }# v$ i% f& x9 H0 F

    when SERVER_DATA {

    4 x/ _0 R3 V+ Q1 Q

    set map_baidu "api.map.baidu.com"

    / y# |. u2 j$ m3 v" T0 t

    set change_data "map.95538.cn:8088"

    ! L) H8 _7 W$ f q9 Y

    foreach start_str [TCP::payload find_all $map_baidu] {

    ! u( f' Q6 A4 h f7 _/ [& V q

    TCP::payload replace $start_str 17 $change_data

    5 K9 v0 v8 g" }! _/ f

    }

    # v1 H; }; b! N4 P: j( v

    TCP::release

    ! K2 U0 Z/ j' v5 J# q3 |

    TCP::collect

    % v" [4 g1 m+ m5 S5 J

    }

    & U, |2 s2 y6 d; p

    -----END

    + M! b6 X/ M' o0 V

    外链VS下的as++

    ( F& ~( E- z% w! p; S2 X8 Z# v4 j

    /c/slb/appshape/script http_body

    * H& E+ c5 y, I' @% r. E( e

    ena

    4 U- r n5 Z- g$ l

    import text

    " V) [3 y4 m J* o) s* z+ @

    when CLIENT_ACCEPTED {

    ; g T: j+ [( L/ r

    TCP::collect

    ) h; M# O* R' h) Z

    }

    4 c" @* ?! o. t* A. Q/ o4 l

    when CLIENT_DATA {

    2 U9 p& u# g" L) r- P

    set old_host "map.95538.cn:8088"

    5 H" l0 Q0 Z' W2 i. B6 c& r6 B7 l

    set new_host "api.map.baidu.com"

    * {3 i& @: A9 i0 w4 w" J' ~: v

    set i [TCP::payload find $old_host]

    / |. P! Z9 O& F% n- I e

    if { $i != -1 } {

    ! y& @0 L+ t& A! ?' t9 z/ @

    TCP::payload replace $i 17 $new_host

    2 _; d# p0 J" X0 l% [ D4 L! U7 s

    }

    9 x$ J) R$ Q" l% U1 v4 C' ?( j" z

    set re_gzip "Accept-Encoding: gzip, deflate"

    ' b4 g3 H3 T4 @

    set re_null " "

    / A E6 H# `$ Z/ M& m

    set j [TCP::payload find $re_gzip]

    1 M% a5 M f' k1 X

    if { $j != -1 } {

    * D3 p, R* O/ W5 f$ h3 s$ z

    TCP::payload replace $j 30 $re_null

    5 x+ w+ u; u: Y3 }

    }

    - t) |3 ?% O. {+ P% d

    TCP::release

    6 ?% U+ H' O S- f7 {

    TCP::collect

    5 n( \" a3 A7 @2 C

    }

    7 Z' W4 U, a) z: I1 p. {8 v5 }; e

    when SERVER_CONNECTED {

    * ]1 J0 W- r! A) y$ S

    TCP::collect

    % R! P: ~/ \. L2 b6 _% v

    }

    2 |6 X( z- w1 z8 F U8 o3 y4 L

    when SERVER_DATA {

    ; q) _8 I6 C' e2 a+ y$ @/ _ d

    set map_baidu "api.map.baidu.com"

    ) h ?1 i) V1 x% f& B

    set change_data "map.95538.cn:8088"

    - z! \; g! F- m! T0 d" V

    foreach start_str [TCP::payload find_all $map_baidu] {

    % y. x2 Z/ z9 D1 `/ u

    TCP::payload replace $start_str 17 $change_data

    5 f- r' }+ g# c, X* q( V

    }

    0 P, b8 T. w# t u. |4 W4 \5 d

    TCP::release

    2 y# r, x; d. K @, F. ?% c% T

    TCP::collect

    $ n4 a# I4 l8 k0 B' `/ }) z6 y

    }

    - ^( R5 c6 F$ o* n

    -----END

    7 ~3 m! h2 j% E5 A5 ` G9 ^6 N( F
    6 _- N" ?" S+ @! T' V
    + w. g. z, K3 c( \
    0 I3 n9 z2 y" f& w) g

    测试证明,http modification 与 as++并不一样,至少能力差很多。

    9 O+ \* k% E) J& w
    4 x. W: m/ N% ^' F+ F6 {
    6 F0 D/ y- h( u. W
    ) n# V' }1 a7 c) N

    set map_baidu "api.map.baidu.com"

    & h4 a2 [. L8 }7 X V: i

    set change_data "map.95538.cn:8088"

    * W( X: V1 K1 L( D/ ^+ m* I

    foreach start_str [TCP::payload find_all $map_baidu] {

    9 b; ]! ]/ j9 P- @

    TCP::payload replace $start_str 17 $change_data

    / q, p/ g! J4 }

    }

    & {3 k* @/ Z- m8 h
    " L/ a5 R f, G6 |9 R* K
    ( p0 d u: P8 A. f; A
    0 r# j% {' q& y3 q- W3 n

    (api.map.baidu.com)都完全修改掉了,不止刚刚看到的那两处。

    , O' V' k# f! d, s6 k9 F

    经过这样的修改之后,再次抓包发现,我们请求到了更多的信息,但遗憾的是,百度地图依然不显示。对比正常能请求到地图的包发现,正常的数据包从请求第一个(api.map.baidu.com)开始,余下的session全是在同一个会话当中。而请求不到地图,但确实返回了大量信息的包中,我们发现每个session都是一个独立的会话。

    3 a: u( h2 u0 S
    ) \" f1 ^9 g% i) u$ U* e

    我们猜测,这可能与会话保持有关,我们通过v6请求过去,百度地图API返回了Set-Cookie之后,我们后续的请求,会自动丢弃百度API返回的Cookie,而且很显然,我们每次请求都发往了不同的百度地图服务器。

    1 f6 ~- p* x; b) j

    2.3.外链有基于cookie的会话保持

    7 N8 j, h) K9 C r9 a' l! C7 P

    我们尝试了insert,passive,rewrite各种方式,企图将Cookie插入,甚至,我们都用上了手动插入,就是用as++写入一条静态的,百度地图API返回过来的Cookie,完全没有任何效果。

    7 F- A5 ?4 X; U i( [

    观察一下这个Cookie吧,这个Cookie中包含了很多信息,我做了一个这样的猜想,会不会是因为这些信息中的某一条导致了客户认为这个set-cookie是不安全,不合法的呢。比如“domain=.baidu.com”,仅仅只是一种猜测,不过没有别的办法还是可以尝试一下。于是,通过as++在respond方向,将多余的cookie信息remove掉。

    / z" R2 Z2 h; L
    ! p6 Q7 p: d) p5 p+ w
    : g/ k7 P/ b( a9 f1 e! N; }; _
    8 R6 h K9 S; K+ ~ \+ o1 @

    set fg_ex "FG=1; expires="

    9 }( t3 z2 P' L! o4 U0 h; j+ a

    set fg "FG=1"

    6 v3 ^0 l" w* i, f1 H o

    set i [TCP::payload find $fg_ex]

    5 H3 O9 k' a: J7 ^: r

    if { $i != -1 } {

    # _. x/ E, D8 k0 b% k0 c( `

    TCP::payload replace $i 97 $fg

    / w, {% P+ y: r9 J

    }

    2 x& R& _+ E. P* `/ u; b# @" v0 ~
    1 h6 M3 D0 [4 _+ T
    . ~3 g! _0 o; R# r5 X5 R0 S
    $ l6 G* ?: Y, [$ \' V2 P2 _

    在外链VS中SERVER_DATA中添加了这么一段。将FG=1;后面的内容全部移除。

    * @, |+ \9 g7 z7 B+ W

    然后,激动人心的事情发生了。刷新页面后,百度的地图的一些控制缩放的原件出现了,而地图也在反复的缩放过程中,似有似无的出现。

    ' X7 j7 t' \: E/ t4 H5 \
    " g* M( u4 R1 j8 _5 C
    * I/ S! |$ l4 Z2 G2 F; p* E( ]

    当出现这个结果时,我几乎都认为,这恐怕就是最好的结果了。

    % W8 T5 _- W2 X2 s, a

    可惜,依旧经不起考验,这种奇迹,就只出现了一次,清空浏览器缓存,再次刷新,地图再没出现过。

    + P& z2 m6 x6 `3 ]( b, c/ T

    此项问题该如何解决呢?限于篇幅原因,请大家期待下一章节,Radware IPv6链外天窗案例-百度地图外链解决方案(三)

    M% f2 Q% R! h) @' l$ I3 \/ j
    G6 |6 _% |5 S 2 w1 M+ x3 K: L ; K6 H% [7 O0 u* {
    回复

    使用道具 举报

    懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    客服QQ/微信
    921439866 周一至周日:09:00 - 21:00
    致力打造互联网创业第一品牌,学习网上创业赚钱,首选泓嘉网络创业,值得信赖! 泓嘉网络科技 版权所有!

    本站内容均转载于互联网,并不代表泓嘉网立场! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!。

    信息产业部备案号 豫ICP备2022016396号-1

    QQ|免责声明|广告服务|小黑屋|泓嘉网创 ( 豫ICP备2022016396号-1 )|网站地图

    GMT+8, 2026-4-17 10:57 , Processed in 5.291561 second(s), 25 queries .

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