- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种新型SQL注入攻击检测机制研究
一种新型的SQL注入攻击检测机制研究
摘 要:决策树分类器是一种简单、准确性高、高性能的算法,而SQL注入攻击分析是一项工作量巨大、复杂的工作。通过使用决策树分类器分析SQL注入攻击能大大提高分析效率和结果的准确性。
关键词:机器学习;决策树;分类器
1 概述
当今世界网络应用急速增长,并逐步改造着人类的文化和商业模式。网络在给我们带来各种便利的同时也带来了一定的安全隐患,据统计2015年全年电子商务总额已经达到了22万亿,通过攻击WEB安全漏洞,黑客可以盗取公司机密,直接或者间接给个人或组织带来巨大的经济利益损失。
据统计2015年就发现有72.5万个高危SQL注入漏洞,通过攻击SQL注入漏洞,入侵者可以在绕过管理权限的情况下直接访问、删除、插入或者修改WEB应用存储在数据库中的内容,严重威胁组织的数据安全。
2 SQL注入攻击介绍
2.1 SQL注入攻击原理
注入攻击漏洞包括多种类型,例如SQL、OS以及LDAP注入。注入攻击是不可信的数据作为命令或者查询语句的一部分被发送给解释器时产生。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者访问未被授权的数据。
信息安全工作开展一个核心的内容就是分析攻击模型,注入攻击的模型非常简单。注入攻击的威胁源可以是任何能够向系统发送不信任数据的人,包括外部用户、内部用户和系统管理员。注入攻击的攻击向量很明确,就是攻击者可以基于解释器语法发送简单的、基于文本的攻击,几乎任何数据源都可以成为注入攻击载体。注入攻击漏洞十分普遍,能在SQL查询语句、LDAP查询语句、Xpath查询语句、OS命令、程序参数等中找到。注入攻击的影响很严重,能导致数据丢失或被破坏,甚至系统完全被控制。
在信息安全领域SQL注入攻击大名如雷贯耳,导致的安全事件数不胜数,如国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露。SQL注入漏洞是Web系统特有的一类漏洞,源于Java、PHP、ASP等语言对用户数据和解析的缺陷。文章以Java为例介绍SQL注入攻击原理,下面是一个SQL注入的经典例子。
void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userid =request.getParameter(userid).toString();
String sql = select * from usertable where userid = + userid + ;
}
doPost是java Servlet处理http协议post方法的函数,局部变量userid的值由用户提交,按照系统正常逻辑,假如用户提交数据test,那么变量sql组合后的值是:
select * from usertable where userid=test
这对系统是一个正常的SQL查询语句,系统会查询userid值是test的表行。
但是,如果用户提交test;delete from usertable;-- ,那么变量sql组合后的值是:
select * from usertable where userid=test;delete from usertabel;--
这对系统是异常的SQL查询语句,因为,系统首先会查询userid值是test的表行,然后删除usertable表里面的全部数据,这是系统不期望执行的恶意结果。上面的例子的精髓在于攻击者巧妙的利用字符串的拼接,在提交数据里面插入了SQL命令串,欺骗服务器执行恶意的删除命令。
2.2 SQL注入攻击过程
SQL注入攻击类型多种多样,分盲注、旁注、get注入、post注入等,针对不同类型数据库攻击脚本千差万别。但是SQL注入攻击原理很简单,攻击过程也有统一的模式。SQL注入要先进行信息收集发现注入点,信息收集需要大量的测试,会提交大量测试数据,可能会导致系统异常信息大量增加,例如,要发现注入点可能需要在参数值包含测试字符串:
or 1=1
and 1=1
or 1=1
其原理是组合成sql语句来判断是否存在注入点,如果组合成非法语句系统会报异常。注入点发现后要深入挖掘数据库、数据表、字段名称、字段值等信息,会大量重复提交包含数据库指令的数据,例如,盲注Mysql数据库,为发现数据表的字段数,会重复提交数据,数据中包含字符串:
order by [整数值]
“[]”内是精心选取的
文档评论(0)