文件管理 · 2022年8月9日

asp注入网站源码|asp网站源代码

㈠ ASP网页注入,怎么弄只要成功,追加分都可以的。

dim ClassIDClassID=Request.QueryString("ClassID")if not isnumeric(ClassID) then '如果该参数不是数字型 response.end '程序中止end if—————————————dim ClassID '声明变量ClassID=Request.QueryString("ClassID") '获取ShowClass.asp?ClassID=33传过来的参数ClassID值,附值给变量ClassIDif not isnumeric(ClassID) then '如果该参数不是数字型 如果:ClassID的值是: 33 1=1或 33 '1'='1',那么这个值就是数字了,那么就认为他是非法的值,可能是被注入的值,下面提示出错信息,或中止程序运行。 response.end '程序中止end if

㈡ asp网站源代码

在局域网里搭建一个web服务器,固定该机的内网IP,要win2003系统,XP的不行,因为IIS连接数有限制,搭建好,把版程序放上去,其权他电脑直接输入这台服务器的IP地址就可以访问了。如果要外网登陆,要先把局域网的路由器映射到这台服务器上,一般是在路由器里设置DMZ主机,然后填上服务器的内网IP。外网访问时是要输入外网的IP,可以上IP138查询到。如果你们宽带是固定IP的话申请个域名指向这个IP就行了,如果不是固定IP,就需要使用动态域名,现在常用的是 “花生壳”

㈢ 我想找一个有比较多漏洞的网站的源码,比如可以asp,php注入等都可以。供学习研究用。请提供下载地址。。

看php100的视频教程。看兄弟连的视频教程。不只要学php,还要学 html css js mysql学一年。

㈣ asp怎么注入

常用注入是用带有url参数或是用表单提交数据的页面来进行的,如有一个:a.asp?id=3,那么在注入时将其后面加上代码后变成a.asp?id=3 and 1=2,如果网页没有对数据进行过滤,那么这个网页就会出错,并显示出数据库某表的一个字段名,因为大多数有url参数的网页都会用到数据库,在数据库里的sql语句又会用到传过来的参数,如原sql语句为:sql="select * from 表 where id="&request("id"),正常情况下传过来的id会只有一个数字,如上面的例子将变成:sql="select * from 表 where id=3",经过我们上面的改变成为:sql="select * from 表 where id=3 and 1=2",显然两个sql语句有着很大的变化。表单提交也是同样道理。此处我也不多说了,如果想要知道更多的注入,那就要很好的了解数据库及sql语言了。

㈤ 怎么安装ASP整站源码

在本地安装IIS.然后把下载的ASP文件放到WWWROOT目录下面就OK了.你可以在网上搜一下.很多教程的.你搜如何安装IIS就行了WINXP的话下载IIS5.1 NT安装6.0

㈥ 黑客请进入 asp网站被注入 请解释一下代码 并给予防范代码

这是日志文件?如果是日志文件的话你的网站应该没有问题,从代码来看,只是有人尝试进行注入,但没有成功,因为他在尝试对bindex.asponesix.aspvip_index.asp等文件进行注入'但没有成功,因为要是成功的话他不会对这么多个文件尝试而且只尝试一次,这证明他都失败了,如果成功的话他会只对一个文件进行住入,所以你的网站没有问题,呼,强烈要求加分

㈦ asp+access型网站防sql注入代码包括get、post、cookie过滤代码

<%部份代码.Function HTMLEncode(fString)fString=replace(fString,";",";")fString=replace(fString,"<","<")fString=replace(fString,">",">")fString=replace(fString,"\","\")fString=replace(fString,"–","--")fString=replace(fString,CHR(9)," ")fString=replace(fString,CHR(10),"<br>")fString=replace(fString,CHR(13),"")fString=replace(fString,CHR(22),"&#22;")fString=replace(fString,CHR(32)," ")fString=replace(fString,CHR(34),""")'双引号fString=replace(fString,CHR(39),"'")'单引号HTMLEncode=fStringEnd Function Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_ZxFy_Cl = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向Fy_Zx = "Error.Asp" '出错时转向的页面On Error Resume NextFy_Url=Request.ServerVariables("QUERY_STRING")Fy_a=split(Fy_Url,"&")redim Fy_Cs(ubound(Fy_a))On Error Resume Nextfor Fy_x=0 to ubound(Fy_a)Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)NextFor Fy_x=0 to ubound(Fy_Cs)If Fy_Cs(Fy_x)<>"" ThenIf Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"%20and%20")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"%20select%20")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"%20update%20")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"%20chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"%20insert%20")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"%20mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 ThenSelect Case Fy_Cl Case "1"Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&" 的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!');window.close();</Script>" Case "2"Response.Write "<Script Language=JavaScript>location.href='"&Fy_Zx&"'</Script>" Case "3"Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&"的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!');location.href='"&Fy_Zx&"';</Script>"End SelectResponse.EndEnd IfEnd IfNextsquery=lcase(Request.ServerVariables("QUERY_STRING"))sURL=lcase(Request.ServerVariables("HTTP_HOST"))allquery=squery+sURLif InStr(allquery,"%20")<>0 or InStr(allquery," ")<>0 or InStr(allquery,"%27")<>0 or InStr(allquery,"'")<>0 or InStr(allquery,"%a1a1")<>0 or InStr(allquery," ")<>0 or InStr(allquery,"%24")<>0 or InStr(allquery,"$")<>0 or InStr(allquery,"%3b")<>0 or InStr(allquery,";")<>0 or InStr(allquery,"%%")<>0 or InStr(allquery,"%3c")<>0 or InStr(allquery,"<")<>0 or InStr(allquery,"%3e")<>0 or InStr(allquery,">")<>0 or InStr(allquery,"%28")<>0 or InStr(allquery,"(")<>0 or InStr(allquery,"%29")<>0 or InStr(allquery,")")<>0 thenresponse.write "非法访问"Response.Endend if%>

㈧ 什么是ASP注入呀

转自蓝色理想———————–引 言随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。根据国情,国内的网站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占L20%,其他的不足10%。在本文,我们从分入门、进阶至高级讲解一下ASP注入的方法及技巧,PHP注入的文章由NB联盟的另一位朋友zwell撰写,希望对安全工作者和程序员都有用处。了解ASP注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。大家准备好了吗?Let's Go…入 门 篇 如果你以前没试过SQL注入的话,那么第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。 第一节、SQL注入原理以下我们从一个网站www.19cn.com开始(注:本文发表前已征得该站站长同意,大部分都是真实数据)。在网站首页上,有名为“IE不能打开新窗口的多种解决方法”的链接,地址为:http://www.19cn.com/showdetail.asp?id=49,我们在这个地址后面加上单引号’,服务器会返回下面的错误提示:Microsoft JET Database Engine 错误 '80040e14' 字符串的语法错误 在查询表达式 'ID=49'' 中。/showdetail.asp,行8从这个错误提示我们能看出下面几点:1.网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC。2.程序没有判断客户端提交的数据是否符合程序要求。3.该SQL语句所查询的表中有一名为ID的字段。从上面的例子我们可以知道,SQL注入的原理,就是从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取你想到得到的资料。第二节、判断能否进行SQL注入看完第一节,有一些人会觉得:我也是经常这样测试能否注入的,这不是很简单吗?其实,这并不是最好的方法,为什么呢?首先,不一定每台服务器的IIS都返回具体错误提示给客户端,如果程序中加了cint(参数)之类语句的话,SQL注入是不会成功的,但服务器同样会报错,具体提示信息为处理 URL 时服务器上出错。请和系统管理员联络。其次,部分对SQL注入有一点了解的程序员,认为只要把单引号过滤掉就安全了,这种情况不为少数,如果你用单引号测试,是测不到注入点的那么,什么样的测试方法才是比较准确呢?答案如下: ① http://www.19cn.com/showdetail.asp?id=49② http://www.19cn.com/showdetail.asp?id=49 and 1=1③ http://www.19cn.com/showdetail.asp?id=49 and 1=2这就是经典的1=1、1=2测试法了,怎么判断呢?看看上面三个网址返回的结果就知道了:可以注入的表现:① 正常显示(这是必然的,不然就是程序有错误了)② 正常显示,内容基本与①相同③ 提示BOF或EOF(程序没做任何判断时)、或提示找不到记录(判断了rs.eof时)、或显示内容为空(程序加了on error resume next)不可以注入就比较容易判断了,①同样正常显示,②和③一般都会有程序定义的错误提示,或提示类型转换时出错。当然,这只是传入参数是数字型的时候用的判断方法,实际应用的时候会有字符型和搜索型参数,我将在中级篇的“SQL注入一般步骤”再做分析。 第三节、判断数据库类型及注入方法不同的数据库的函数、注入方法都是有差异的,所以在注入之前,我们还要判断一下数据库的类型。一般ASP最常搭配的数据库是Access和SQLServer,网上超过99%的网站都是其中之一。怎么让程序告诉你它使用的什么数据库呢?来看看:SQLServer有一些系统变量,如果服务器IIS提示没关闭,并且SQLServer返回错误提示的话,那可以直接从出错信息获取,方法如下:http://www.19cn.com/showdetail.asp?id=49 and user>0这句语句很简单,但却包含了SQLServer特有注入方法的精髓,我自己也是在一次无意的测试中发现这种效率极高的猜解方法。让我看来看看它的含义:首先,前面的语句是正常的,重点在and user>0,我们知道,user是SQLServer的一个内置变量,它的值是当前连接的用户名,类型为nvarchar。拿一个nvarchar的值跟int的数0比较,系统会先试图将nvarchar的值转成int型,当然,转的过程中肯定会出错,SQLServer的出错提示是:将nvarchar值 ”abc” 转换数据类型为 int 的列时发生语法错误,呵呵,abc正是变量user的值,这样,不废吹灰之力就拿到了数据库的用户名。在以后的篇幅里,大家会看到很多用这种方法的语句。 顺便说几句,众所周知,SQLServer的用户sa是个等同Adminstrators权限的角色,拿到了sa权限,几乎肯定可以拿到主机的Administrator了。上面的方法可以很方便的测试出是否是用sa登录,要注意的是:如果是sa登录,提示是将”dbo”转换成int的列发生错误,而不是”sa”。 如果服务器IIS不允许返回错误提示,那怎么判断数据库类型呢?我们可以从Access和SQLServer和区别入手,Access和SQLServer都有自己的系统表,比如存放数据库中所有对象的表,Access是在系统表[msysobjects]中,但在Web环境下读该表会提示“没有权限”,SQLServer是在表[sysobjects]中,在Web环境下可正常读取。在确认可以注入的情况下,使用下面的语句:http://www.19cn.com/showdetail.asp?id=49 and (select count(*) from sysobjects)>0http://www.19cn.com/showdetail.asp?id=49 and (select count(*) from msysobjects)>0如果数据库是SQLServer,那么第一个网址的页面与原页面http://www.19cn.com/showdetail.asp?id=49是大致相同的;而第二个网址,由于找不到表msysobjects,会提示出错,就算程序有容错处理,页面也与原页面完全不同。如果数据库用的是Access,那么情况就有所不同,第一个网址的页面与原页面完全不同;第二个网址,则视乎数据库设置是否允许读该系统表,一般来说是不允许的,所以与原网址也是完全不同。大多数情况下,用第一个网址就可以得知系统所用的数据库类型,第二个网址只作为开启IIS错误提示时的验证。(入门篇完)说明:使用NBSI-NB联盟SQL注入分析器可以检测出各种SQL注入漏洞并进行解码,提高猜解效率.版权:本文是我的原创连载文章,首发于www.54NB.com,欢迎各网站转载,请务必保留版权信息,媒体杂志转载前请先与本人联系.

㈨ 从网上下载的网站ASP源码怎么安装需要安装什么数据库在线等

1:你可以下载绿来色ASP服务器,比如源netbox。不过并不能完美支持所有的ASP源码。建议你网络一下,如何安装IIS。学会了安装IIS,就可以在本地电脑调试网站程序了。2:要看你下载的程序是什么数据库。如果是Access的数据库,直接就可以使用了。如果是MSSQL数据库,那你就要看一下是sql2005的库还是sql2000的库,如果是2000的,你装一下SQL2000就可以了。注:具体怎么装IIS,怎么安装MSSQL数据库,网上有许多很不错的图文教程,你可以网络一下。

㈩ 服务器被入侵,网站根目录被注入.ASP、.TXT文件,如何找到漏洞

首先建议你使用360主机卫士、安全狗对服务器进行扫描排查。1.应当采用的处理方式(1)、建立被入侵系统当前完整系统快照,或只保存被修改部分的快照,以便事后分析和留作证据。(2)、立即通过备份恢复被修改的网页。(3)、在Windows系统下,通过网络监控软件或"netstat -an"命令来查看系统目前的网络连接情况,如果发现不正常的网络连接,应当立即断开与它的连接。然后通过查看系统进程、服务和分析系统和服务的日志文件,来检查系统攻击者在系统中还做了什么样的操作,以便做相应的恢复。(4)、通过分析系统日志文件,或者通过弱点检测工具来了解攻击者入侵系统所利用的漏洞。如果攻击者是利用系统或网络应用程序的漏洞来入侵系统的,那么,就应当寻找相应的系统或应用程序漏洞补丁来修补它,如果目前还没有这些漏洞的相关补丁,我们就应当使用其它的手段来暂时防范再次利用这些漏洞的入侵活动。如果攻击者是利用其它方式,例如社会工程方式入侵系统的,而检查系统中不存在新的漏洞,那么就可以不必做这一个步骤,而必需对社会工程攻击实施的对象进行了解和培训。(5)、修复系统或应用程序漏洞后,还应当添加相应的防火墙规则来防止此类事件的再次发生,如果安装有IDS/IPS和杀毒软件,还应当升级它们的特征库。(6)、最后,使用系统或相应的应用程序检测软件对系统或服务进行一次彻底的弱点检测,在检测之前要确保其检测特征库是最新的。所有工作完成后,还应当在后续的一段时间内,安排专人对此系统进行实时监控,以确信系统已经不会再次被此类入侵事件攻击。如果攻击者攻击系统是为了控制系统成为肉鸡,那么,他们为了能够长期控制系统,就会在系统中安装相应的后门程序。同时,为了防止被系统用户或管理员发现,攻击者就会千方百计地隐藏他在系统中的操作痕迹,以及隐藏他所安装的后门。因而,我们只能通过查看系统进程、网络连接状况和端口使用情况来了解系统是否已经被攻击者控制,如果确定系统已经成为了攻击者的肉鸡,那么就应当按下列方式来进行入侵恢复:(1)、立即分析系统被入侵的具体时间,目前造成的影响范围和严重程度,然后将被入侵系统建立一个快照,保存当前受损状况,以更事后分析和留作证据。(2)、使用网络连接监控软件或端口监视软件检测系统当前已经建立的网络连接和端口使用情况,如果发现存在非法的网络连接,就立即将它们全部断开,并在防火墙中添加对此IP或端口的禁用规则。(3)、通过Windows任务管理器,来检查是否有非法的进程或服务在运行,并且立即结束找到的所有非法进程。但是,一些通过特殊处理的后门进程是不会出现在 Windows任务管理器中,此时,我们就可以通过使用Icesword这样的工具软件来找到这些隐藏的进程、服务和加载的内核模块,然后将它们全部结束任务。可是,有时我们并不能通过这些方式终止某些后门程序的进程,那么,我们就只能暂停业务,转到安全模式下进行操作。如果在安全模式下还不能结束掉这些后门进程的运行,就只能对业务数据做备份后,恢复系统到某个安全的时间段,再恢复业务数据。这样,就会造成业务中断事件,因此,在处理时速度应当尽量快,以减少由于业务中断造成的影响和损失。有时,我们还应当检测系统服务中是否存在非法注册的后门服务,这可以通过打开"控制面板"-"管理工具"中的"服务"来检查,将找到的非法服务全部禁用。(4)、在寻找后门进程和服务时,应当将找到的进程和服务名称全部记录下来,然后在系统注册表和系统分区中搜索这些文件,将找到的与此后门相关的所有数据全部删除。还应将"开始菜单"-"所有程序"-"启动"菜单项中的内容全部删除。(5)、分析系统日志,了解攻击者是通过什么途径入侵系统的,以及他在系统中做了什么样的操作。然后将攻击者在系统中所做的所有修改全部更正过来,如果他是利用系统或应用程序漏洞入侵系统的,就应当找到相应的漏洞补丁来修复这个漏洞。如果目前没有这个漏洞的相关补丁,就应当使用其它安全手段,例如通过防火墙来阻止某些IP地址的网络连接的方式,来暂时防范通过这些漏洞的入侵攻击,并且要不断关注这个漏洞的最新状态,出现相关修复补丁后就应当立即修改。给系统和应用程序打补丁,我们可以通过相应的软件来自动化进行。(6)、在完成系统修复工作后,还应当使用弱点检测工具来对系统和应用程序进行一次全面的弱点检测,以确保没有已经的系统或应用程序弱点出现。我们还应用使用手动的方式检查系统中是否添加了新的用户帐户,以及被攻击做修改了相应的安装设置,例如修改了防火墙过滤规则,IDS/IPS的检测灵敏度,启用被攻击者禁用了的服务和安全软件。2.进一步保证入侵恢复的成果(1)、修改系统管理员或其它用户帐户的名称和登录密码;(2)、修改数据库或其它应用程序的管理员和用户账户名称和登录密码;(3)、检查防火墙规则;(4)、如果系统中安装有杀毒软件和IDS/IPS,分别更新它们的病毒库和攻击特征库;(5)、重新设置用户权限;(6)、重新设置文件的访问控制规则;(7)、重新设置数据库的访问控制规则;(8)、修改系统中与网络操作相关的所有帐户的名称和登录密码等。当我们完成上述所示的所有系统恢复和修补任务后,我们就可以对系统和服务进行一次完全备份,并且将新的完全备份与旧的完全备份分开保存。在这里要注意的是:对于以控制系统为目的的入侵活动,攻击者会想方设法来隐藏自己不被用户发现。他们除了通过修改或删除系统和防火墙等产生的与他操作相关的日志文件外,高明的黑客还会通过一些软件来修改其所创建、修改文件的基本属性信息,这些基本属性包括文件的最后访问时间,修改时间等,以防止用户通过查看文件属性来了解系统已经被入侵。因此,在检测系统文件是否被修改时,应当使用RootKit Revealer等软件来进行文件完整性检测。二、 以得到或损坏系统中机密数据为目的的系统入侵恢复现在,企业IT资源中什么最值钱,当然是存在于这些设备当中的各种机密数据了。目前,大部分攻击者都是以获取企业中机密数据为目的而进行的相应系统入侵活动,以便能够通过出售这些盗取的机密数据来获取非法利益。如果企业的机密数据是以文件的方式直接保存在系统中某个分区的文件夹当中,而且这些文件夹又没有通过加密或其它安全手段进行保护,那么,攻击者入侵系统后,就可以轻松地得到这些机密数据。但是,目前中小企业中有相当一部分的企业还在使用这种没有安全防范的文件保存方式,这样就给攻击者提供大在的方便。不过,目前还是有绝大部分的中小企业都是将数据保存到了专门的存储设备上,而且,这些用来专门保存机密数据的存储设备,一般还使用硬件防火墙来进行进一步的安全防范。因此,当攻击者入侵系统后,如果想得到这些存储设备中的机密数据,就必需对这些设备做进一步的入侵攻击,或者利用网络嗅探器来得到在内部局域网中传输的机密数据。机密数据对于一些中小企业来说,可以说是一种生命,例如客户档案,生产计划,新产品研究档案,新产品图库,这些数据要是泄漏给了竞争对象,那么,就有可能造成被入侵企业的破产。对于抢救以得到、破坏系统中机密数据为目的的系统入侵活动,要想最大限度地降低入侵带来的数据损失,最好的方法就是在数据库还没有被攻破之前就阻止入侵事件的进一步发展。试想像一下,如果当我们发现系统已经被入侵之时,所有的机密数据已经完全泄漏或删除,那么,就算我们通过备份恢复了这些被删除的数据,但是,由于机密数据泄漏造成的损失依然没有减少。因此,我们必需及时发现这种方式的系统入侵事件,只有在攻击者还没有得到或删除机密数据之前,我们的恢复工作才显得有意义。当然,无论有没能损失机密数据,系统被入侵后,恢复工作还是要做的。对于以得到或破坏机密数据为目的的系统入侵活动,我们仍然可以按此种入侵活动进行到了哪个阶段,再将此种类型的入侵活动细分为还没有得到或破坏机密数据的入侵活动和已经得到或破坏了机密数据的入侵活动主两种类型。1、恢复还没有得到或破坏机密数据的被入侵系统假设我们发现系统已经被入侵,并且通过分析系统日志,或者通过直接观察攻击者对数据库进行的后续入侵活动,已经了解到机密数据还没有被攻击者窃取,只是进入了系统而已,那么,我们就可以按下列方式来应对这样的入侵活动:如果企业规定在处理这样的系统入侵事件时,不允许系统停机,那么就应当按这种方式来处理:(1)、立即找到与攻击源的网络连接并断开,然后通过添加防火墙规则来阻止。通常,当我们一开始就立即断开与攻击源的网络连接,攻击者就会立即察觉到,并由此迅速消失,以防止自己被反向追踪。因而,如果我们想抓到攻击者,让他受到法律的惩罚,在知道目前攻击者进行的入侵攻击不会对数据库中的机密数据造成影响的前提下,我们就可以先对系统当前状态做一个快照,用来做事后分析和证据,然后使用IP追捕软件来反向追踪攻击者,找到后再断开与他的网络连接。不过,我们要注意的是,进行反向追踪会对正常的系统业务造成一定的影响,同时,如果被黑客发现,他们有时会做最后一搏,会破坏系统后逃避,因而在追捕的同时要注意安全防范。只是,大部分的企业都是以尽快恢复系统正常运行,减少入侵损失为主要目的,因此,立即断开与攻击源的网络连接是最好的处理方式。(2)、对被入侵系统的当前状态建立快照,以便事后分析和留作证据。(3)、通过分析日志文件和弱点检测工具找到攻击者入侵系统的漏洞,然后了解这些系统漏洞是如何得到的。如果漏洞是攻击者自己分析得到的,那么就可能还没有相应的漏洞修复补丁,因而必需通过其它手段来暂时防范再次利用此漏洞入侵系统事件的发生;如果漏洞是攻击者通过互联网得到的,而且漏洞已经出现了相当一段时间,那么就可能存在相应的漏洞修复补丁,此时,就可以到系统供应商建立的服务网站下载这些漏洞补丁修复系统;如果攻击者是通过社会工程方式得到的漏洞,我们就应当对当事人和所有员工进行培训,以减少被再次利用的机率。(4)、修改数据库管理员帐号名称和登录密码,重新为操作数据的用户建立新的帐户和密码,并且修改数据库的访问规则。至于剩下的系统恢复工作,可以按恢复以控制系统为目的的系统入侵恢复方式来进行。2、恢复已经得到或删除了机密数据的被入侵系统如果当我们发现系统已经被入侵时,攻击者已经得到或删除了系统中全部或部分的机密数据,那么,现在要做的不是试图抢救已经损失了的数据,而是保护没有影响到的数据。由于此类系统入侵事件已经属于特别严重的入侵事件,我们的第一个动作,就是尽快断开与攻击源的网络连接。如果允许系统停机处理这类严重系统入侵事件,那么就可以直接拔掉网线的方式断开被入侵系统与网络的直接连接。当系统仍然不允许停机处理时,就应当通过网络连接监控软件来找到系统与攻击源的网络连接,然后断开,并在防火墙中添加相应的规则来拦截与攻击源的网络连接。这样做的目的,就是防止此次系统入侵事件进一步的恶化,保护其它没有影响到的数据。断开与攻击源的连接后,我们就应当立即分析数据损失的范围和严重程度,了解哪些数据还没有被影响到,然后立即将这些没有影响到的数据进行备份或隔离保护。对于丢失了数据的系统入侵事件,我们还可以将它归纳成以下的三个类别:(1)、数据被窃取。当我们检测数据库时发现数据并没有被删除或修改,但是通过分析系统日志和防火墙日志,了解攻击者已经进入了数据库,打开了某些数据库表,或者已经复制了这些数据库表,那么就可以确定攻击者只是窃取了数据而没有进行其它活动。此时,应当按前面介绍过的方法先恢复系统到正常状态,然修补系统和数据库应用程序的漏洞,并对它们进行弱点检测,发现没有问题后分别做一次完全备份。还应当修改系统管事员和数据库管理员帐户的名称和登录密码,所有的操作与前面提到过的方式相同。只是多出了数据库的恢复工作。(2)、数据被修改如果我们在分析数据库受损情况时发现攻击者并没有打开数据库表,而是通过数据库命令增加、修改了数据库某个表中的相关内容。那么,我们不得不一一找出这些非授权的数据表相关行,然后将它们全部修正或删除。如果修改的内容有关某个行业,例如办理驾驶证的政府机关,办理毕业证的教育机构,或者办理其它各种执照相关单位等,那么,还要将攻击者修改的内容向外界公布,说明这些被攻击者修改或添加的内容是无效的,以免造成不必要的社会影响。其它的系统和数据库恢复处理方式与数据被窃取方式相同。(3)、数据被删除如果我们在分析数据库受损情况时,发现攻击者不仅得到了机密数据,而且将系统中的相应数据库表完全删除了,那么,我们在断开与其网络连接时,要立即着手恢复这些被删除了的数据。当我们通过备份的方式来恢复被删除的数据时,在恢复之前,一定要确定系统被入侵的具体时间,这样才知道什么时候的备份是可以使用的。这是因为,如果我们对数据库设置了每日的增量备份,当攻击者删除其中的内容时,非法修改后的数据库同样被备份了,因此,在入侵后的增量备份都不可用。同样,如果在系统被入侵期间,还对数据库进行了完全备份,那么,这些完全备份也不可用。如果允许我们停机进行处理,我们可以拆下系统上的硬盘,接入其它系统,然后通过文件恢复软件来恢复这些被删除的文件,但是,对于数据库表中内容的删除,我们只能通过留下的纸质文档,来自己慢慢修正。在这里我们就可以知道,备份并不能解决所有的系统入侵问题,但仍然是最快、最有效恢复系统正常的方式之一。通过这我们还可以知道,及时发现系统已经被入侵对于抢救系统中的机密数据是多么的重要。三、 以破坏系统或业务正常运行为目的的系统入侵恢复当攻击者入侵系统的目的,就是为了让系统或系统中的正常业务不能正常运行,如果我们发现不及时,当这类系统入侵事件攻击成功后,就会造成系统意外停机事件和业务意外中断事件。处理这类系统入侵事件时,已经没有必需再考虑系统需不需要停机处理的问题了,既然系统都已经不能正常运行了,考虑这些都是多余的,最紧要的就是尽快恢复系统正常运行。对于这类事件,也有下列这几种类别,每种类别的处理方式也是有一点区别的:1、系统运行正常,但业务已经中断对于此类系统入侵事件,我们可以不停机进行处理,直接以系统在线方式通过备份来恢复业务的正常运行,但在恢复前要确定系统被入侵的具体时间,以及什么时候的备份可以使用,然后按本文前面介绍的相关系统入侵恢复方式来恢复系统和业务到正常状态。对于没有冗余系统的企业,如果当时非常迫切需要系统业务能够正常运行,那么,也只有在通过备份恢复业务正常运行后直接使用它。但在没有修复系统或应用程序漏洞之前,必需安排专人实时监控系统的运行状况,包括网络连接状况,系统进程状况,通过提高IDS/IPS的检测力度,添加相应的防火墙检测规则来暂时保护系统安全。2、系统不能正常运行,但系统中与业务相关的内容没有受到破坏此时,我们首要的任务就是尽快让系统恢复正常运行,但是要保证系统中与业务相关的数据不能受到损害。如果与业务相关的重要数据不在系统分区,那么,将系统从网络中断开后,我们就可以通过另外保存的系统完全备份来迅速恢复系统到正常状态,这是最快速的解决方法。但是,如果与业务相关的数据全部或部分存放在系统分区,那么,为了防止当前业务数据的完整性,我们应当先通过像WinPE光盘系统的方式启动Winpe系统,然后将与业务相关的重要数据全部备份到其它独立的存储设备中,再对系统分区进行备份恢复操作。如果我们发现系统的完全备份不可用,我们就只能在保证与业务相关的重要数据不损失的情况下,进行全新的操作系统安装方式来恢复系统正常运行,然后再安装业务应用程序,来恢复整个系统业务的正常运行。但是,由于这种方式是重新全新安装的操作系统,因此,如没有特殊的要求,应当对系统和应用程序做好相应的安全防范措施并完全备份后,才将系统连入网络当中。至于剩下的系统恢复工作,可以按恢复以控制系统为目的的系统入侵恢复方式来进行。3、系统不能正常运行,系统中的业务也已经被破坏此时,首先按第二种方式恢复系统正常运行,然后再在系统中重新安装与业务相关应用程序,并且尽量通过备份恢复与业务相关的数据。至于剩下的系统恢复工作,可以按恢复以控制系统为目的的系统入侵恢复方式来进行。当系统或业务被破坏不能运行后,造成的影响和损失是肯定的,我们按上述方式这样做的目的,就是为了尽量加快系统和业务恢复正常运行的速度,减少它们停止运行的时间,尽量降低由于系统停机或业务中断造成的影响和损失。在对入侵系统进行恢复处理的过程中,对于一些与企业经营生死相依的特殊业务,例如电子邮件服务器,由于邮件服务器是为员工和客户提供邮件服务器的,如果邮件服务器停用,势必会影响的业务的正常往来。因此,对邮件服务器进行入侵恢复前,在使用本文前面所描述的方法进行进,还应当完成下列的工作:(1)、启用临时邮箱,如果受影响的邮件服务器是企业自身的,可以通过申请邮件服务器提供商如Sina、163等的邮箱作为代替。(2)、然后将临时邮箱信息尽快通知供货商和合作伙伴。(3)、完成这些的工作后,就可以对被入侵的邮件服务器系统作相应的入侵恢复处理,恢复的方式与本文前面描述的方式相同。四、 事后分析当成功完成任何一种系统入侵类型的处理工作后,我们还必需完成与此相关的另外一件重要的事情,那就是对系统入侵事件及事件处理过程进行事后分析。事后分析都是建立在大量的文档资料的基础上的,因而,我们在对被入侵系统进行处理的过程中,应当将事件处理过程中的所有操作内容和方式全部细致地记录下来。另外,我在描述如何恢复被入侵系统的处理过程中,在每次进行入侵恢复前都要求将受损系统的当前状态建立快照,其目的之一也是为了事后可以通过它来进行入侵分析。我们通过对被入侵系统进行入侵分析,就能了解到此次入侵事件影响的范围和损失的严重程度,以及处理它所花费的时间、人力和物力成本。另一方面,通过分析此次入侵事件,可以了解攻击者是通过什么方式入侵系统的。通过了解攻击者入侵系统的各种方式,就可以从中学习到相应的防范对策,为我们的安全防范工作带来相应的宝贵经验,让我们以后知道如何去应对与此相似的系统入侵活动。并由此来修改安全策略中不规范的内容,或添加相应的安全策略,使安全策略适应各个时期的安全防范需求。同样,对每次系统入侵事件的处理过程进行分析,可以让我们了解自己或事件处理团队在应对系统入侵事件时的操作是否正确,是否产生了不必要的操作,是否产生了人为的失误,这些失误是如何产生的,以及哪些操作提高了处理的效率等等有用的信息。通过对系统入侵恢复处理过程的事后分析,能让我们增加相应的事件入侵响应能力,而且,还可以找出事件响应计划中不规范的内容,并由此做相应的修正。对系统入侵事件和其恢复处理过程进行事后分析得出的结论,都应当全部以书面形式记录下来,并上报给上级领导。同时,还应当将处理结果发到每个事件响应小组成员手中,或企业中各个部门领导手中,由各部门分别组织学习,以防止此类系统入侵事件再次发生。如果有必要,还可以将事件发生和处理情况通告给合作伙伴和客户,以帮助它们防范此类系统入侵事件的发生,或告知系统或应用软件提供商,让他们尽快产生相应的漏洞补丁。