热点推荐:
您现在的位置: 电脑学习网 >> 网络技术 >> 正文

初级SQL注入的破解方案

2013-09-12 15:53:47  来源: 网络技术 

  最近海口警方破获一起特大高校招生诈骗案,该诈骗团伙雇用黑客入侵海南大学招生网站,窜改招生数据库,伪造招生名单,骗取学生财物。看到这里,你是不是感到不寒而栗?你知道黑客入侵该大学网站首先会采用什么方式吗?答案就是SQL注入,所谓SQL注入,就是把SQL命令插入到Web表单递交的查询字符串、页面请求的查询字符串,以及输入域名的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。
  暑假中自己架设网站的学生们、众多的个人网站以及小型企业的网站的管理员们(主要采用Access或MSSQL作数据库,特别是Access数据库),你们作好迎战的准备了吗?下面就请跟随小编一起探索初级SQL注入的解决之法。
SQL注入漏洞的原理
  SQL注入的原理,就是从客户端提交特殊的代码,来收集远程网站及服务器的信息,从而获取自己所需要的相关资料。根据具体情况,构造出相应的巧妙的SQL语句,是成功获取需要数据的关键。
  在实际的操作中,如果是针对Access数据库,可以对表名进行逐个猜测,接着用函数来计算数据并将它们还原;如果是MSSQL数据库的话,由于所有的列表都保存在一个特殊的地方,可以直接通过暴库的方法来获取,这种方法简单易用并且准确率极高。
初级手段寻找注入漏洞
  首先,需要对IE浏览器进行一些设置。WWW.itcoMputEr.com.Cn点击“工具”菜单中的“Internet选项”命令,在弹出的窗口中点击“高级”标签,把“显示友好 HTTP 错误信息”前面的钩去掉。这样设置的目的,就是从返回的错误信息中寻找可以利用的信息,否则无论服务器返回什么错误信息,IE浏览器都只能显示为HTTP 500服务器错误,不能获得更多的提示信息,
  接着要判断网站是否存在注入漏洞,因为只有ASP、PHP、JSP等动态网页才可能存在注入漏洞。我们判读的方法是,打开一个带参数的动态网页地址,例如http://www.xxxx.net/ReadNews.asp?NewsID=58。只有这种问号后面附带一个参数的网址,才可以进行是否能注入的判断。
  然后,在网页地址后加上“and 1=1”,如果返回错误页面则说明不存在注入漏洞。如果返回和原先一样的正常页面,那就将1=1改为1=2再执行操作,如果返回的网页还是正常显示,就说明不存在注入漏洞。如果显示错误的话,那么就很有可能存在注入漏洞。
  小提示:存在注入漏洞的网站大部分都有特点,即如果在页面的链接后面跟一个等式就会返回一个和没有加等式前一样的页面;而在链接后面加一个不等式,就会返回各种错误信息。这是判断网站注入漏洞的一种最经典的方法。完成了注入漏洞的判断后,还需要经过猜表、猜账号数目、猜解字段名称等多个步骤,才能最终获得需要的数据。
剖析SQL工具注入
  对于没有接触过数据库的普通用户来说,通过手工构造网页注入所用的代码很困难,因此可以直接利用现成的网页注入工具进行操作。现在网络中常见的网页注入工具包括NBSI、HDSI、Domain、《啊D注入工具》等,这些工具大大简化了网页注入操作的难度。
1.找寻网站注入点
  现在我们就利用《啊D注入工具》来进行演示。首先点击窗口中“注入检测”中的“扫描注入点”按钮,然后在“检测地址”中输入需要进行检测的网站地址,按回车就会打开该网页并开始检测注入点。用户可以在页面显示窗口中操作,这样可以提高程序查找漏洞的可能性。如果程序检测到漏洞的话,将显示出漏洞的链接地址,也就是用于SQL注入入侵的注入点。

2.分析数据库类型
  在检测到的注入点链接上点击鼠标右键,选择菜单中的“注入检测”按钮,程序将自动跳转到“初级SQL注入检测”界面。在“注入连接”选项中已经自动填入刚刚检测到得注入链接,用户直接点击“检测”按钮即可检测出该网站所使用的数据库类型,这也就是前面说的“猜表”的过程。接着点击“检测表段”按钮,对数据库的表段进行分析,没过多久程序就检测出数据库中的表段。

3.拆解数据库信息
  为了能获得需要的数据,一般都需要获得管理员的账户和密码。所以这里选择“admin”这个表段,然后接着点击“检测字段”按钮,同样在很短的时间内就能检测出“admin”表段中的字段名称。不用说我们就知道username字段存放的是管理员的账户,而password字段中存放的当然就是登录密码了。选择需要进行拆借的字段,再点击“检测内容”按钮来判断字段的长度和内容,接着程序就可以将每个字段的内容猜解出来。

4.寻找后台并登录
  当我们成功获得了管理员的账户和密码后,我们就应该开始检测该网站的管理入口了。点击“检测管理入口”按钮,工具就开始自动检测该网站的管理入口。当检测到网站的管理入口后,在检测到的地址上点击鼠标右键,在弹出的菜单中选择“用IE打开连接”命令。我们接着转到浏览器窗口,使用得到的管理员账户和密码在登录窗口进行登录,进入网站的后台后就可以进行管理操作了。

如何防范初级SQL注入
  对于SQL网页注入的防范主要分为两种。第一种就是对客户端提交的变量参数进行仔细检测。比如可以利用现成的《枫叶SQL通用防注入V1.0 ASP版》程序,对用户通过网址提交过来的变量参数进行检查,如果发现客户端提交的参数中有用于初级SQL注入的常用字符时,系统就会立即停止执行ASP并给出警告信息或转向出错页面。
  第二种就是给相关的账户信息加密。常见的系统都是利用MD5进行加密处理的,因为MD5没有反向算法不能解密。不过利用在线破解网站可以破解某些被MD5加密的内容,因此管理员在设置自己密码时最好先到这些网站进行检测,从而保证自己密码的安全性。
攻防博弈
  攻 黑客:这个实例向大家演示了利用《啊D注入工具》注入Access数据库的过程。对于Access来说,由于其SQL查询功能非常弱,因此只能使用猜解的办法;但是对于SQL Server之类的数据库来说,我们还可以利用一些特别的SQL查询语句暴出其表名与列名,并完成强大的系统控制功能。相对而言,SQL Server的手工注入更加灵活强大,而且更加难以防御!
  防 编辑:对客户端提交的变量参数进行仔细检测以及给相关的账户信息加密,的确可以减少黑客利用网站漏洞进行SQL注入。但是对于服务器管理员来说,服务器上有许多网站,不可能检查每个网站是否存在SQL注入漏洞,所以为了有效地防止SQL Server之类的暴库入侵,减少网站的损失,可以在IIS上进行安全设置。例如:把IIS设置成不管出什么样的ASP错误,只给出一种错误提示信息。

 


From:http://www.itcomputer.com.cn/Article/Network/201309/414.html
    Copyright © 2005-2013 电脑知识网 Computer Knowledge   All rights reserved.