黑客24小时在线接单网站

破解系统,专业黑客,黑客业务,渗透接单,黑客网站

ddosapi免费对接(ddos搭建api教程)

本文目录一览:

vb制作最简单基本的ddos工具

处理数据包一般有两个步骤端口侦听和缓存处理,编程比较麻烦。这里有个调用api拦截处理数据包的,希望对你参考。

以下是在VB中截获WIN2000下TCP/IP包的源代码,在VB6.0,win2000下测试通过,需要注意的地方是,1.必须和本地的一块网卡,2.每次获取数据后必须有一段延时。3.数据取到之后放在Buff的数组中。4.把以下的代码放在一个模块中就可以了。

'代码开始

Declare Function bind Lib "ws2_32.dll " (ByVal s As Long, addr As SOCK_ADDR, ByVal namelen As Long) As Long

Declare Function closesocket Lib "ws2_32.dll " (ByVal s As Long) As Long

Declare Function connect Lib "ws2_32.dll " (ByVal s As Long, name As SOCK_ADDR, ByVal namelen As Integer) As Long

Declare Function inet_addr Lib "ws2_32.dll " (ByVal cp As String) As Long

Declare Function htons Lib "ws2_32.dll " (ByVal hostshort As Integer) As Integer

Declare Function recv Lib "ws2_32.dll " (ByVal s As Long, buffer As Any, ByVal length As Long, ByVal flags As Long) As Long

Declare Function send Lib "ws2_32.dll " (ByVal s As Long, buffer As Any, ByVal length As Long, ByVal flags As Long) As Long

Declare Function shutdown Lib "ws2_32.dll " (ByVal s As Long, ByVal how As Long) As Long

Declare Function ioctlsocket Lib "ws2_32.dll " (ByVal s As Long, ByVal v As Long, ut As Long) As Long

Declare Function socket Lib "ws2_32.dll " (ByVal af As Long, ByVal type_specification As Long, ByVal protocol As Long) As Long

Declare Function WSACancelBlockingCall Lib "ws2_32.dll " () As Long

Declare Function WSACleanup Lib "ws2_32.dll " () As Long

Declare Function WSAGetLastError Lib "ws2_32.dll " () As Long

Declare Function WSAStartup Lib "ws2_32.dll " (ByVal wVersionRequired As Integer, wsData As WSA_DATA) As Long

Declare Function WSASocketA Lib "ws2_32.dll " (ByVal af As Long, ByVal type1 As Long, ByVal protocol As Long, lpProtocolInfo As Long, g As Long, ByVal dwFlags As Long)

Declare Function WSAIoctl Lib "ws2_32.dll " (ByVal s As Long, ByVal dwIoControlCode As Long, lpvInBuffer As Long, ByVal cbInBuffer As Long, lpvOutBuffer As Long, ByVal cbOutBuffer As Long, lpcbBytesReturned As Long, lpOverlapped As Long, lpCompletionRoutine As Long) As Long

Declare Sub CopyMemory Lib "kernel32 " Alias "RtlMoveMemory " (Destination As Any, Source As Any, ByVal length As Long)

Public Declare Sub Sleep Lib "kernel32 " (ByVal dwMilliseconds As Long)

Public Const WSADESCRIPTION_LEN = 256

Public Const WSASYS_STATUS_LEN = 128

Type WSA_DATA

wVersion As Integer

wHighVersion As Integer

strDescription(WSADESCRIPTION_LEN + 1) As Byte

strSystemStatus(WSASYS_STATUS_LEN + 1) As Byte

iMaxSockets As Integer

iMaxUdpDg As Integer

lpVendorInfo As Long

End Type

Type IN_ADDR

S_addr As Long

End Type

Type SOCK_ADDR

sin_family As Integer

sin_port As Integer

sin_addr As IN_ADDR

sin_zero(0 To 7) As Byte

End Type

Type IPHeader

lenver As Byte

tos As Byte

len As Integer

ident As Integer

flags As Integer

ttl As Byte

proto As Byte

checksum As Integer

sourceIP As Long

destIP As Long

End Type

Const AF_INET = 2

Const SOCK_RAW = 3

Const IPPROTO_IP = 0

Const IPPROTO_TCP = 6

Const IPPROTO_UDP = 17

Const MAX_PACK_LEN = 65535

Const SOCKET_ERROR = -1** mwsaData As WSA_DATA

** m_hSocket As Long

** msaLocalAddr As SOCK_ADDR

** msaRemoteAddr As SOCK_ADDR

Sub Main()

Dim nResult As Long

nResult = WSAStartup(H202, mwsaData)

If nResult WSANOERROR Then

MsgBox "Error en WSAStartup "

Exit Sub

End If

m_hSocket = socket(AF_INET, SOCK_RAW, IPPROTO_IP)

If (m_hSocket = INVALID_SOCKET) Then

MsgBox "Error in socket "

Exit Sub

End If

msaLocalAddr.sin_family = AF_INET

msaLocalAddr.sin_port = 0

msaLocalAddr.sin_addr.S_addr = inet_addr( "192.168.1.125 ") '这里需要你自己的网卡的IP地址

nResult = bind(m_hSocket, msaLocalAddr, Len(msaLocalAddr))

If (nResult = SOCKET_ERROR) Then

MsgBox "Error in bind "

Exit Sub

End If

Dim InParamBufferAs Long

Dim BytesRetAs Long

BytesRet = 0

InParamBuffer = 1

nResult = WSAIoctl(m_hSocket, H98000001, InParamBuffer, Len(InParamBuffer), 0, 0, BytesRet, 0, 0)

If nResult 0 Then

MsgBox "ioctlsocket "

Exit Sub

End If

Dim strData As String

Dim nReceived As Long

'截获来的数据放在BUFF里面

Dim Buff(0 To MAX_PACK_LEN) As Byte

Dim IPH As IPHeader

Do Until False '这个例子里,一直获取

DoEvents

Call Sleep(300) '这里这条语句不能去掉,但可以调整一下范围,否则出现GPE错误。

nResult = recv(m_hSocket, Buff(0), MAX_PACK_LEN, 0)

If nResult = SOCKET_ERROR Then

MsgBox "Error in RecvData::recv "

Exit Do

End If

CopyMemory IPH, Buff(0), Len(IPH) '为了访问方便

Select Case IPH.proto

Case IPPROTO_TCP

'frmHookTcpip.Text1.SelText = HexIp2DotIp(IPH.sourceIP)

'frmHookTcpip.Text1.SelText = "----- "

'frmHookTcpip.Text1.SelText = HexIp2DotIp(IPH.destIP)

'frmHookTcpip.Text1.SelText = vbCrLf

Debug.Print HexIp2DotIp(IPH.sourceIP) "----- " HexIp2DotIp(IPH.destIP)

End Select

Loop

nResult = shutdown(m_hSocket, 2)

nResult = closesocket(m_hSocket)

nResult = WSACancelBlockingCall

nResult = WSACleanup

End Sub

Function HexIp2DotIp(ByVal ip As Long) As String

Dim s As String, p1 As String, p2 As String, p3 As String, p4 As String

s = Right( "00000000 " Hex(ip), 8)

p1 = Val( "h " Mid(s, 1, 2))

p2 = Val( "h " Mid(s, 3, 2))

p3 = Val( "h " Mid(s, 5, 2))

p4 = Val( "h " Mid(s, 7, 2))

HexIp2DotIp = p4 ". " p3 ". " p2 ". " p1

End Function

'代码结束

在防御DDoS攻击方面有没有厂商给出相应的解决方案?

F5公司是业界领先的L4/L7交换机厂商,在不断完善对各类服务器应用的负载均衡的同时,也逐步在内核中引入安全防御的概念,并且通过F5特有的开放系统(提供i-Controller 构架下的API/SDK开发标准),联合业界著名的操作系统厂商、防火墙厂商、防病毒厂商、IDS/IPS厂商 、应用服务软件厂商,构筑起围绕服务器为核心的动态攻击防御系统。

当大数据流DoS/DDoS攻击进入的时候,服务器可能由于在瞬间接受超过服务器吞吐能力的数据流而直接导致系统崩溃,甚至导致数据丢失或客户资料遗失。而采用F5的BIG-IP保护服务器,通过EAV/ECV精确探测服务器的处理能力,从而在服务器处理能力饱和之前自动屏蔽新建链接。超过服务器吞吐能力的链接将在F5上处于waiting状态,直至有服务器空闲或TCP timeout。

与此同时,为进一步防止服务器遭受攻击过载,F5利用“iControl”技术可以帮助服务器通知网络,“此时忙,暂停服务”,然后,网络将停止再向它转发客户请求,而将客户请求继续转发至其它服务器,继续对客户应用请求提供服务。并且,服务器会同时通知3DNS,这个中心可用服务器数量减少一台,应相应减少对这个中心的客户服务请求量。当这台服务器完成所有数据记录的备份后,服务器又会通知BIGIP和3DNS,此时它已恢复正常,可以提供服务。这时,系统又恢复原有的正常状态。

对于DoS/DDoS攻击,F5对于常用的几种攻击手段,从内核级就予以屏蔽,具体实施如下:

1.Synflood:

该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。

F5 的策略:

F5 采用特有的SYN proxy功能,所有与虚拟服务器建立HTTP SYN的请求均由F5代替服务器响应,F5并不将SYN请求发送到服务器。只有当用于响应了F5的ACK,并真正发送HTTP GET请求时,F5才与服务器建立链接并发送HTTP GET请求。所以普通的Synflood只会和F5通讯,无法攻击到服务器。而F5 能够轻松支持高达2,000,000个会话的吞吐能力,能够应付绝大多数攻击。而如果攻击数量超过F5的能力,F5 的Reaper功能将自动启动保护系统自身.

2.Ping of Death

根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。

F5 的策略:

在F5上可以将虚拟服务器的ARP屏蔽,ICMP包系统根本不响应。其次,虚拟服务器的ICMP响应是由F5的管理进程提供响应,当管理进程繁忙时,系统会自动降低虚拟服务器的ICMP响应的优先级甚至不响应,而管理进程与服务器负载均衡是两个完全不同的进程,在F5上其内存和CPU使用时间是严格分离的,所以Ping of Death丝毫不会影响服务器负载均衡,也就是不会影响真正对外的服务响应端口。

3.IP欺骗DoS攻击

这种攻击利用RST位来实现。假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。 攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。

F5 的策略:

F5特有的SYN proxy功能,将TCP的SYN/ACK/SYN ACK三段握手作为判断合法用户的依据,同时所有的SYN/ACK/SYN ACK均不通服务器链接,只有当用户发送HTTP GET请求时再与选定的服务器建立链接,所以RST只是拆除与F5建立额链接,并不影响合法用户访问服务器。

4.带宽DoS攻击

如果黑客的连接带宽足够大而服务器又不是很大,黑客可以通过发送大量请求,来消耗服务器的缓冲区消耗服务器的带宽。这种攻击就是人多力量大了,配合上SYN一起实施DoS,威力巨大。

F5 的策略:

这种攻击发生时,从站点的路由器、交换机、防火墙到服务器的带宽均有可能被占满。所以如果发生该种攻击,首要的任务是通过EAV/ECV保护服务器不要溢出或崩溃。其次,采用F5的i-Control技术配合IDS、防火墙、交换机、服务器、路由器形成整个系统的联动来予以抵御攻击.

BIG-IP采用动态安全控制架构(DSCA)来实施、加强和加速应用和Web服务的安全交付。它是第一款能够自动对不断变化的安全威胁做出响应、采取措施并加强防范的安全解决方案,筑起了一道协调统一的安全防线,同时还提高了网络中其它安全产品的性能。在基于F5 开放式平台iContol之上,结合F5在业界诸多地合作伙伴,使用F5的API/SDK开发工具,就可以实现L4/L7交换机与入侵检测IDS的互动。由IDS实时检测攻击,当发现有黑客攻击行为时,IDS通过调用iControl的API/SDK动态调整F5上的iRules策略,使得系统能够屏蔽攻击数据的同时还能让合法用户访问服务器。

什么是ASP漏洞啊?

ASP就是Active Server Page的缩写。它是一种包含了使用VB Script或Jscript脚本程序代码的网页。当浏览器浏览ASP网页时, Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样浏览器端看到的 就是动态生成的网页。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互。是一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。ASP的网页文件的格式是.ASP。

无论你相不相信,通过 asp,可能可以很方便地入侵 web server、窃取服务器上的文件、捕获 web 数据库等系统的用户口令,甚至恶意删除服务器上的的文件,直至造成系统损坏,这些都决非耸人听闻,而且都确确实实发生过,本文将向你一一揭示这些 asp 存在的漏洞,并提出一些防范意见。

上一篇中给大家着重谈了“ADO 存取数据库时如何分页显示”的问题,有位朋友来信给我指出我在计算页面总数时忽略了 Recordset 对象的一个重要参数“PageCount”,它能在给 Pagesize 赋值后自动得出页面的总数,而无须用“INT(RS.recordcount/PgSz*-1)*-1”这样繁琐的公式。我要感谢这位朋友热心地给我指出程序中的不足,由于这个程序是我在很久以前写的,因为在分页显示的时候记录的总数不一定能整除页面显示记录的数目,而当时我又不能肯定 PageCount 是否能正确得出页面的数目,所以偷懒写了这个公式:),说实话我到现在还都没试过用 pagecount,有兴趣的朋友千万要试一下哦,可别学我的懒惰呀。

最近我在 chinaasp 的 bbs 上讨论问题时发现很多朋友对于 asp 的一些安全性问题不甚了解,甚至不知道如何解决最常见的 asp::$DATA 显示源代码的问题,因此我觉得非常有必要在这里给广大朋友们重点谈一谈这个问题,在征得 chinaasp 飞鸟的同意下,我将他曾经写过的一点关于 asp 漏洞的介绍加上我自己的一些实践经验拿出来给大家详细分析一下这个对于 webmaster 来说至关重要的 asp 的安全性问题。

当去年 ::$DATA 的漏洞被发现并公布的第二天,我曾经检测了当时国内大部分运用 asp 的站点,其中百分之九十九都存在以上可以看见源代码的问题,当日我甚至在微软的站点上抓下了 search.asp 这个文件的源代码。可能你会觉得看到源代码并没有什么大碍,如果作为 webmaster 的你这么想就大错特错了。譬如,如果 asp 程序员将站点的登陆密码直接写在 asp 里,那么一旦源码被发现,他人就可以很容易的进入本不该被看到的页面,我就曾经利用这个方法免费成为了一个收费网站的成员(大家可别揭发我哦!),而且很多数据库的连接用户名和密码也都是直接写在 asp 里,一旦被发现,如果你的数据库允许远程访问而且没有设防的话就相当危险了。在一些用 asp 开发的 bbs 程序中,往往使用的是 access mdb 库,如果 mdb 库存放的路径被获知,数据库就很有可能被他人下载,加之如果数据库里含有的密码不加密,那就非常危险了,获取密码的人如果有意进行恶意破坏,他只需要以 admin 身份登陆删除所有 bbs 里的帖子,就够你呛的了。下面列出了目前已经发现的一些漏洞,希望大家提高警惕一、经过实验我们发现, win95+pws 上运行 ASP 程序,只须简单地在浏览器地址栏的 asp 文件名后多加一个小数点 ASP 程序就会被下载下来。 IIS3 也存在同样的问题,如果你目前还在使用 IIS3 一定要测试一下。

二、 iis2、 iis3、 iis4 的一个广为人知的漏洞就是 ::$DATA,通过它使用 ie 的 view source 或 netscape 直接访问该 asp 文件就能轻而易举地看到 asp 代码。 win98+pws4 不存在这个漏洞。

究竟是什么原因造成了这种可怕的漏洞呢?究其根源其实是 Windows NT 特有的文件系统在做怪。有一点常识的人都知道在 NT 提供了一种完全不同于 FAT 的文件系统: NTFS,这种被称之为新技术文件系统的技术使得 NT 具有了较高的安全机制,但也正是因为它而产生了不少令人头痛的隐患。大家可能不知道, NTFS 支持包含在一个文件中的多数据流,而这个包含了所有内容的主数据流被称之为“DATA”,因此使得在浏览器里直接访问 NTFS 系统的这个特性而轻易的捕获在文件中的脚本程序成为了可能。然而直接导致 ::$DATA 的原因是由于 IIS 在解析文件名的时候出了问题,它没有很好地规范文件名。

我们该如何解决这个问题呢?办法有几种:

a、是将 .asp 文件存放的目录设置为不可读(ASP 仍能执行),这样 html、 css 等文件就不能放在这个目录下,否则它们将不能被浏览。

b、是安装微软提供的补丁程序,下载的地址如下(注意针对不同的系统有不同的补丁):

该补丁是针对 IIS3, Intel 平台

该补丁是针对 IIS3, Intel 平台

该补丁是针对 IIS4, Alpha 平台

该补丁是针对 IIS4, Alpha 平台

c、是在服务器上安装 ie4.01sp1,这个是否有效,作者本人没具体试过。

d、存粹作者的个人意见,尽量安装英文版的 NT,而不要使用中文版,究其原因作者也说不清,只是根据实践经验英文版的 NT 较中文版 bug 少,如果哪位朋友知道原因千万要告诉我。

三 . 支持 ASP 的免费主页空间以及虚拟主机服务的服务器面临的问题

1、服务器上的 ASP 代码很可能被人其他拥有 asp 权限的人非法获取。

举个很简单的例子,在微软提供的 ASP1.0 的例程里有一个 .asp 文件专门用来查看其它 .asp 文件的源代码,该文件为 ASPSamp/Samples/code.asp。如果有人把这个程序上传的服务器,而服务器端没有任何防范措施的话,他就可以很容易地查看他人的程序。

例如 :

code.asp?source=/directory/file.asp

2、使用的 ACCESS mdb 数据库可能被人下载一般来说在提供 asp 权限的免费主页服务器上不可能提供代为设定 DSN 的服务,因此 asp 程序使用的数据库通常都局限在使用 mdb 库,而 mdb 远端数据库所在的位置是使用我们在第十四期中讲到过的 DSN-less 方法直接在 asp 中指定的,方法如下 :

%connstr = "DBQ="+server.mappath("database/source.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5; SafeTransactions=0;Threads=3;UserCommitSync=Yes;"%

正如前文所言,在这种情况下 mdb 库很可能被他人下载,从而造成诸如密码等的泄露。

所以,作为 webmaster 应该采取一定的措施,严禁 code.asp 之类的程序(似乎很难办到 , 但可以定期检索特征代码),限制 mdb 的下载。

3、来自强大的 filesystemobject 组件的威胁

IIS3、 IIS4 的 ASP 的文件操作都可以通过 filesystemobject 实现,包括文本文件的读写目录操作、文件的拷贝改名删除等,但是这个强大的功能也留下了非常危险的“后门”。利用 filesystemobjet 可以篡改下载 fat 分区上的任何文件。即使是 ntfs 分区,如果权限没有设定好的话,同样也能破坏,一不小心你就可能遭受“灭顶之灾”。遗憾的是很多 webmaster 只知道让 web 服务器运行起来,很少对 ntfs 进行权限设置,而 NT 目录权限的默认设置偏偏安全性又低得可怕。因此,如果你是 Webmaster,作者强烈建议你密切关注服务器的设置,尽量将 web 目录建在 ntfs 分区上,目录不要设定 everyone full control,即使是是管理员组的成员一般也没什么必要 full control,只要有读取、更改权限就足够了。

四、 ASP 应用程序可能面临的攻击过去许多 Internet 上 CGI 写的留言本或 BBS 是把客户输入的留言变为一个变量,然后再把这个变量插入到显示留言的 HTML 文件里,因此客户输入的文本如要在 HTML 文件里显示就得符合 HTML 标准,而 CGI 程序里一般都加入了特定的 HTML 语言。当客户输入内容,插入 HTML 文件时,即同时插入到了头尾 HTML 语句中,如:

font 客户输入的变量 /font 但如果把前后的 HTML 标记给敝屏了,就可以做很多事情了。

如输入时打上:

/font 符合 HTML 标准的语句 font 前后的 font 是用来敝屏 CGI 中的 HTML 语句用的。插入到 HTML 文件里的就变成了:

font /font 符合 HTML 标准的语句 font /font 由于这样一个特性,使得写个 javascript 的死循环变得非常容易,只要在输入框中输入:

a href="URL" onMouseover="while(1){window.close('/')}" 或 a herf="URL" onMousever="while(ture){window.close('/')}" 那么就能让其他查看该留言的客户的浏览器因死循环而死掉。 ASP 开发的程序同样可能存在这个问题,因此当你用 asp 编写类似程序时应该做好对此类操作的防范,譬如可以写一段程序判断客户端的输入,并屏蔽掉所有的 HTML、 Javascript 语句。

看完本期后,如果你非常的震惊,那么你必须彻底对你现有的网站或 asp 程序进行一翻检测,看看是否存在上述漏洞。如果你对文中所谈到的漏洞都有所了解并已有足够的对策,那么在恭喜你的同时,还是要提醒你经常查看你的网站和 asp 程序,如果你有数据库也应该经常查看,以防他人利用一些我们未知的漏洞进行攻击。

共享IP和独立IP各有什么优缺点

独立IP优势:

一、独立IP的技术优势,

使用独立IP除了能直接利用IP地址访问网站外,比较突出的有以下两点:

1、 能规避在共享IP条件下的连带风险,也就是如果同一服务器上的其他虚拟主机用户因遭受攻击(比如DDOS)、违规(比如黄赌毒)或政策性处置(比如十七大、奥运)被屏蔽,不会受到牵连,而共享IP是如果一个用户出现问题,整台服务器上的所有用户几乎都会受到影响,这样的问题也只有独立IP才能解决。

2、 独立IP能极大的提升用户网站被搜索引擎收录级别和机会,也就是一个IP只对应一个网站的话,搜索引擎会认为网站质量很高,提高收录级别,而共享IP条件下,一个IP下对应多个网站,搜索引擎会认为网站质量不高,而降低收录级别。

如何解决API安全问题?有什么好的建议吗?

与APP端开发人员约定特定的md5组合算法,然后两端比对一下,如果相同就allow,不相同就deny;但是,这也是不安全的,如果APP程序被反编译,这些约定的算法就会暴露,特别是在安卓APP中,有了算法,完全就可以模拟接口请求通过验证。

Plan2

会员登录的时候请求登录接口,然后服务器端返回给客户端一个token,该token生成的规则是 网站公钥 + 当前uid + 当前时间戳 + 一段随机数双重加密,根据需求决定是把该token放进cache等一段时间自动失效,还是放进数据库(如果要放进数据库的话,单独拎出一张表来,顺便记录用户的登录,登出时间),在用户登出登录的时候改变一下,确保该token只能在用户人为登出登录之间有用。

  • 评论列表:
  •  黑客技术
     发布于 2022-11-24 09:33:56  回复该评论
  • sData As WSA_DATA) As Long Declare Function WSASocketA Lib "ws2_32.dll " (ByVal af As Long, ByVal type1 As Long, B
  •  黑客技术
     发布于 2022-11-24 02:19:35  回复该评论
  • 件中的脚本程序成为了可能。然而直接导致 ::$DATA 的原因是由于 IIS 在解析文件名的时候出了问题,它没有很好地规范文件名。 我们该如何解决这个问题呢?办法有几种: a、是将 .asp 文件存放的

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.