当前位置:首页 期刊杂志

基于Web 页面的SQL注入研究

时间:2024-09-03

◆张国防 杨登攀

基于Web 页面的SQL注入研究

◆张国防 杨登攀

(海南软件职业技术学院 海南 571400)

Web技术的发展使得基于C/S传输模式的通信逐渐被B/S的通信模式所取代,而Web源代码具有易见性和入侵技术的更新,以及基于SQL的数据库查询语言构造联合查询语句,使得基于SQL注入的Web渗透模式成为一种直接面向数据库的渗透方式,本文分析了SQL注入的原理,在目标靶机上完成了验证试验,提出了SQL注入发展的新方向。

SQL注入;Web;渗透

0 引言

大型数据库由于开发技术强,数据库的维护技术团队强大,每一个新版本的释放都经过非常复杂的长时间的测试,这使得大型数据库的漏洞难以发现,即便是发现漏洞,而针对这种漏洞的补丁更新快,从而使得针对这种大型数据库的渗透比较困难。相反,对于中小型数据库,尤其是不开放源代码的数据库,开发技术团队没有大型数据库那样强大,容易存在各种漏洞,这也成为黑客常常渗透的对象。Access数据库是由各种数据表构成,这些表存储用户的各种数据,包括用户的信息甚至还包括数据库管理员的账户和密码信息,数据库管理员的账户信息往往单独存储在一张表中,至少存储着管理员的账户和密码。为了便于管理员对数据库的维护,数据库管理员往往对这些表起一个特殊的名称,便于管理员记忆。这些工作虽然方便了管理员的工作,但也给数据库带来危险。一些有经验的黑客高手往往是凭借对数据库管理员这些职业习惯的判断,利用各种方法对这些存储管理员账户信息的表进行渗透,从而达到获取数据库管理员权限的目的。

2 Web的脆弱性

Web技术的出现及大地推动了互联网迅速遍及世界。它的方便、简洁风格使得信息传递变得简单化、大众化,为人们进行信息沟通带来极大的方便。但在这之前,人们利用网络传递信息是基于C/S模式。企业搭建数据库服务器,然后在用户终端安装专用的客户端软件,通过这种C/S模式跨网络进行信息传递。直到现在,在一些特殊的行业,比如银行、证券公司等金融行业仍然使用这种模式通信。由于C/S模式的开发成本和维护的复杂,逐渐出现了Web浏览器取代客户端的B/S模式,直接使用浏览器访问网站数据库的通信模式,这种模式使得通信更简单方便,逐渐成为互联网用户访问网络服务器的主流模式。但是,任何事物都有两面性,随着网络黑客掌握的新技术的不断更新,面对黑客新的渗透技术手段,Web逐渐地显示出它脆弱的一面。

Web的脆弱性表现在以下几方面:

①Web的源代码很容易对用户可见,一个稍微懂点Web技术的人员都可以通过键盘上的功能键看到Web的源代码,Web传递的内容很容易被看见,即便是传递的变量参数信息,这对通过Web传递的管理员账户信息非常危险。②通过在浏览器的URL地址栏的地址信息很容易知道要访问的网络服务器使用的Web技术和网络数据库信息,比如在url地址栏出现?表示Web是通过get方法向数据库查询数据的。如果在浏览器的URL地址栏没有出现“?”,这就表示Web是通过post方法访问服务器的。③通过浏览器的URL地址栏里的信息可以发现Web技术与网络服务器的数据库类型。在小型网络服务器配置中,最典型的配置是在Web服务器的页面使用Asp技术,后台使用Access数据库,本论文的实验环境就是Asp+Access模式。

2 注入步骤

当黑客想要对网站进行渗透注入时,需要做以下准备:搜集目标信息;寻找注入点;构造SQL语句进行渗透。

当要对一个目标进行渗透之前,需要尽可能多地搜集目标的详细信息,包括目标站点的操作系统平台类型、站点服务器类型、服务器端是否有防火墙、入侵防护设备、日志服务器的地址,目标开启了那些端口、目标的IP地址、域名、注册机构、管理者信息等,总之,搜集的信息越详细越有利于攻击者分析判断。通过这些搜集到的信息,攻击者可以判断目标的全面信息数据,从而做出攻击方式的选择。

搜集目标信息的方法:对目标进行信息搜集可以使用各种方法,搜集目标信息的主要方式是使用各种探测工具,各种探测工具很多,攻击者主要采用自己熟练的工具对目标进行探测扫描搜集目标的详细信息。比较著名搜集目标信息的工具有nmap、woreshirk、sniffer等,另外还有一些网站就是用来对目标进行探测搜集信息的。在本文实验中,根据浏览器URL地址栏里的信息出现了“?”符号,以及目标网页扩展名为.asp,从而得知目标网站服务器应该是IIS服务器,数据库是Access。

在确定了目标的信息之后,就需要寻找目标的注入点,注入点是在URL地址栏里进行判断的,以本文实验的目标靶机为例,判断注入点的方法是在目标靶机上寻找某些页面,如果在URL地址栏出现“?id=number”标志时,就有可能是注入点,但究竟是否注入点还有待确定。通过构造不同的SQL查询语句来判断该链接点是不是注入点。Asp服务器上安装目标靶机,该靶机是一个名称为“南方数据2.0”的网站,采用的Web技术是Asp,靶机使用的数据是Access,是典型的Asp+Access组合模型。判断注入点的方法就是构造SQL语句,构造SQL语句的方法设置各种SQL查询条件,设置逻辑判断条件语句,例如“and 1=1”为真的条件,带入到系统去查询,当服务器响应页面正常时说明这有可能是一个注入点,然后在设置"and 1=2"逻辑值为假的条件语句,当服务器响应页面出错了,说明这里确实是一个注入点。

在探测到数据库注入点后,下一步需要做的事是猜测数据库表名,如何猜测数据库表名呢,就是根据经验猜数据库维护人员的职业习惯,一般情况下,数据库管理员为数据库维护方便,往往会给数据库中存放管理员账号信息的表起一些容易记住的名称。数据库中的表是由许多字段构成的,每个字段有自己的名称,在存储管理员账户的表中,存储着账户和密码信息,如要找到这些信息,就需要先确定表中的字段个数,需要构造SQL查询语句,探测字段的个数,猜测字段个数可以使用二分法,从大到小猜测字段个数,这为下一步猜测表字段名称做准备。

表中的每一个字段都有一个名字,每一个字段代表不同的意义,有些字段并不是入侵者所关心的,黑客只关心数据库管理员账户名和密码,所以在猜测字段名时只需猜存储用户名和密码的字段名称。

在猜出账户名和密码字段名称后,最后一步是破解字段内容,用户账户字段名一般是明文信息,而密码字段内容经常是使用MD5加密算法加密后的密文,黑客需要在互联网上寻找MD5解密工具来解密密文。最后破解了用户名和密码信息,入侵者再寻找网站的管理员登录界面,输入用户名和密码就能以管理员身份进入网站后台了。

3 结束语

本文研究了基于Web的SQL注入过程,分为寻找注入点、构造注入语句、探测数据库名称、探测数据表名称、探测数据表字段名称、最后探测表字段内容,获取目标的账户和密码,登录目标网站后台。这种基于Web的SQL注入比较烦琐,猜测数据表名和数据字段名需要构造SQL语句,这是这种方法的不足之处。

[1]张国防.基于对比分析的计算机病毒防护研究[J].网络安全技术与应用,2017.

[2]http://edu.51cto.com/course/6681.html.

[3]https://baike.baidu.com/item/sql%E6%B3%A8%E5%85%A5/150289?fr=aladdin.

[4]https://www.cnblogs.com/pursuitofacm/p/6706961.html.

本文受海南省自然科学基金资助(项目编号:618MS080)。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!