求教谁给讲讲SQL注入攻击的步骤

求教谁给讲讲SQL注入攻击的步骤,第1张

第一步:SQL注入点探测。探测SQL注入点是关键的第一步,通过适当的分析应用程序,可以判断什么地方存在SQL注入点。通常只要带有输入提交的动态网页,并且动态网页访问数据库,就可能存在SQL注入漏洞。如果程序员信息安全意识不强,采用动态构造SQL语句访问数据库,并且对用户输入未进行有效验证,则存在SQL注入漏洞的可能性很大。一般通过页面的报错信息来确定是否存在SQL注入漏洞。

第二步:收集后台数据库信息。不同数据库的注入方法、函数都不尽相同,因此在注入之前,我们先要判断一下数据库的类型。判断数据库类型的方法有很多,可以输入特殊字符,如单引号,让程序返回错误信息,我们根据错误信息提示进行判断,还可以使用特定函数来判断。

第三步:猜解用户名和密码。数据库中的表和字段命名一般都是有规律的,通过构造特殊的SQL语句在数据库中依次猜解出表名、字段名、字段数、用户名和密码。

第四步:查找Web后台管理入口。Web后台管理通常不对普通用户开放,要找到后台管理的登录网址,可以利用Web目录扫描工具快速搜索到可能的登录地址,然后逐一尝试,便可以找到后台管理平台的登录网址。

第五步:入侵和破坏。一般后台管理具有较高权限和较多的功能,使用前面已破译的用户名、密码成功登录后台管理平台后,就可以任意进行破坏,比如上传木马、篡改网页、修改和窃取信息等,还可以进一步提权,入侵Web服务器和数据库服务器。

你好,sql server 2005 的攻击方法:弱口令攻击、SQL注入攻击

SQL Server可以从Internet上访问并下载和安装软件。这些以及其它那些我们每天经常做的事情可能会为特洛伊木马提供安装的途径。看起来很奇怪,但是就服务器而言,感染上病毒是很容易的——特别是没有用保护终端用户系统那样的方式来保护它的时候。

当发现数据库服务器发生了奇怪的现象,先运行如下的测试,看看是否感染了特洛伊病毒。

1:使用恶意软件扫描器

有的数据库服务器因为怕性能下降或者系统崩溃而不采取,或者采取有限的恶意软件防范措施。很如果没有安装反病毒软件,就尽快安装一个杀毒软件。如果需要实时保护的资源太多了,那么就要将数据库和其它高活动性的目录排除在实时扫描的外面吧。否则,最低限度,也要安装反病毒软件,然后每隔几天,找个非高峰的时间来扫描本地磁盘。

如果已经运行了反病毒软件,那么确保它是最新的(那些基于客户端的自动更新和网络管理签名并不是百分百的可靠),并且执行一次全面的系统扫描。

2: 查看内存

可以使用Windows任务管理器来搜索那些看起来就属于恶意软件,或者使用了太多内存或者占用了大量CPU时间的应用程序。建议使用Sysinternals公司的Process Explorer(下面高亮显示的NetBus Trojan),因为它提供了运行进程的较多信息,并且以更可靠的方式来杀掉那些不应该的进程。

在网络中的所有系统中,确实需要彻底地了解数据库——其中包括记录哪些进程应该运行,哪些不应该。所以,如果在第一次安装之后拥有了良好的基线——甚至是现在,假设所有事物都运行得很好——当发生特洛伊类型的问题的时候,就可以用它作为比较的基础。

3: 查看开放的端口

可以使用Windows内置的netstat工具来查看哪些端口开放的,并且连接到服务器上。在命令行中,输入netstat –an more,可以一页挨着一页地查看开放的和监听的TCP和UDP端口。还有一种更好的方法就是使用Foundstone的 Vision工具或者Sysinternals公司的TCPView工具来完成。

4: 查看网络流量

也许判断SQL Server中是否发生了恶意行为的最简单办法就是看看它是否进行了网络通信。如果有一个非常顺手的网络分析器,那么就可以在1、2分钟之内发现情况。可以使用SQL Server自身携带的分析器,或者从别处连接到以太网交换器的交换或者镜像端口上。

EtherPeek可以轻松抓取网络流量,并且高亮显示特洛伊的动作——在本次网络流量抓取过程中可以真正地创建网络分析触发器和过滤器,如果知道要寻找什么的话。这里的列表列出了常见的特洛伊和相关端口的细腻向。这种发现恶意流量的方法并不是十分安全,因为端口号是可以经常更换的,但是它的服务器是个不错的目标。

可以在“监控”模式下运行Ether Peek,让它对网络上发生的事情有个从上到下的整体视角,——而不需要抓取包。可以查看正在使用哪个协议,寻找巨大的流量,奇怪的通信,以及其它网络进出SQL Server系统的倾向。

5:对付恶意软件的方法

特洛伊木马是计算机上的一个令人厌恶的创造——它创建远程访问隧道,截获按键,删除数据等更多事情——特别是在最重要的服务器上。很明显,最好的办法就是不用SQL Server进行Internet访问,Web浏览,电子邮件等行为。——但是,这不现实。(或者其他人)可能会需要它最终不仅仅作为一个数据库服务器。一旦这样的事情出现了,就需要确保是被保护的。不要把责任推卸给其他人,或者其他任何东西,特洛伊不是运行在他们的系统上。不论以何种方式,永远不要假设反病毒软件可以保证万无一失。

分析并解决恶意软件的方法:如果想要攻击,或者安装一个可以在网络上给帮助的欺诈软件,那么没有什么地方比直接在SQL Server上更好了。服务器上可能还没有特洛伊,但是如果感觉到有问题,那么凶手就可以很容易发现。

腾讯电脑管家企业平台:http://zhidaobaiducom/c/guanjia/

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如: ⑴ 某个ASPNET Web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称和密码。 ⑵ 登录页面中输入的内容将直接用来构造动态的SQL命令,或者直接用作存储过程的参数。下面是ASPNET应用构造查询的一个例子: SystemTextStringBuilder query = new SystemTextStringBuilder("SELECT from Users WHERE login = ’")。Append(txtLoginText)。Append("’ AND password=’")。Append(txtPasswordText)。Append("’"); ⑶ 攻击者在用户名字和密码输入框中输入"’或’1’=’1"之类的内容。 ⑷ 用户输入的内容提交给服务器之后,服务器运行上面的ASPNET代码构造出查询用户的SQL命令,但由于攻击者输入的内容非常特殊,所以最后得到的SQL命令变成:SELECT from Users WHERE login = ’’ or ’1’=’1’ AND password = ’’ or ’1’=’1’ ⑸ 服务器执行查询或存储过程,将用户输入的身份信息和服务器中保存的身份信息进行对比。 ⑹ 由于SQL命令实际上已被注入式攻击修改,已经不能真正验证用户身份,所以系统会错误地授权给攻击者。 如果攻击者知道应用会将表单中输入的内容直接用于验证身份的查询,他就会尝试输入某些特殊的SQL字符串篡改查询改变其原来的功能,欺骗系统授予访问权限。 系统环境不同,攻击者可能造成的损害也不同,这主要由应用访问数据库的安全权限决定。如果用户的帐户具有管理员或其他比较高级的权限,攻击者就可能对数据库的表执行各种他想要做的操作,包括添加、删除或更新数据,甚至可能直接删除表。  二、如何防范 好在要防止ASPNET应用被SQL注入式攻击闯入并不是一件特别困难的事情,只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。 ⑴ 对于动态构造SQL查询的场合,可以使用下面的技术: 第一:替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。再来看前面的例子,“SELECT from Users WHERE login = ’’’ or ’’1’’=’’1’ AND password = ’’’ or ’’1’’=’’1’”显然会得到与“SELECT from Users WHERE login = ’’ or ’1’=’1’ AND password = ’’ or ’1’=’1’”不同的结果。 第二:删除用户输入内容中的所有连字符,防止攻击者构造出类如“SELECT from Users WHERE login = ’mas’ —— AND password =’’”之类的查询,因为这类查询的后半部分已经被注释掉,不再有效,攻击者只要知道一个合法的用户登录名称,根本不需要知道用户的密码就可以顺利获得访问权限。 第三:对于用来执行查询的数据库帐户,限制其权限。用不同的用户帐户执行查询、插入、更新、删除操作。由于隔离了不同帐户可执行的操作,因而也就防止了原本用于执行SELECT命令的地方却被用于执行INSERT、UPDATE或DELETE命令。 ⑵ 用存储过程来执行所有的查询。SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了。 ⑶ 限制表单或查询字符串输入的长度。如果用户的登录名字最多只有10个字符,那么不要认可表单中输入的10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。 ⑷ 检查用户输入的合法性,确信输入的内容只包含合法的数据。数据检查应当在客户端和服务器端都执行——之所以要执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性。 在客户端,攻击者完全有可能获得网页的源代码,修改验证合法性的脚本(或者直接删除脚本),然后将非法内容通过修改后的表单提交给服务器。因此,要保证验证操作确实已经执行,唯一的办法就是在服务器端也执行验证。你可以使用许多内建的验证对象,例如RegularExpressionValidator,它们能够自动生成验证用的客户端脚本,当然你也可以插入服务器端的方法调用。如果找不到现成的验证对象,你可以通过CustomValidator自己创建一个。 ⑸ 将用户登录名称、密码等数据加密保存。加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入 的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。 SystemWebSecurityFormsAuthentication类有一个 HashPasswordForStoringInConfigFile,非常适合于对输入数据进行消毒处理。 ⑹ 检查提取数据的查询所返回的记录数量。如果程序只要求返回一个记录,但实际返回的记录却超过一行,那就当作出错处理。

你可以试以下几个方法同时用,效果会好些:

1、修改MSSQL的端口号;

2、修改复杂的SA密码,如aKLFJD13aaK_&1@这一类,黑客就无法爆破了;

3、打开WIN的自带防火墙,仅开有用的80端口和远程桌面(记住远程桌面端口也改),别开21端口。

4、关闭PING功能。

用上面的方法可以大大提高你服务器的安全,其他的防火墙有一定的作用,但会占资源。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 求教谁给讲讲SQL注入攻击的步骤

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情