工具分享

如何手写一款SQL injection tool

0×01 前言

我想在FreeBuf上出没的人一般都是安全行业的,或者说是安全方面的爱好者,所以大家对sql注入应该都比较了解,反正我刚入门的时候就是学的这些:sql注入、xss之类的。sql注入从出现到现在也十多年了,但是一直都在owasp top10中有一席之地,原因之一就是sql注入的门槛低危害高,攻击者不需要带计算机知识、网络知识有什么太深的了解,甚至是都不需要了解,只要知道几条sql语句和那几种数据库的不同结构就可以发起攻击,而造成的伤害确实非常非常高的。

大型的网站已经很少有sql注入漏洞了,但是对于那些开发和防护都不太过关的小网站却还经常会存在sql注入漏洞,毕竟百密一疏,只要有一个注入点就可以遍历整个数据库。我本人对sql注入技术其实不是很感兴趣,而且我sql注入的水平也比较的low,这篇文章呢主要目的是帮助刚刚踏入安全界或者说是想要从事安全工作的新手们学习sql注入知识而写的,自己手写一个注入工具能让你更好的熟悉注入的原理和过程,这篇文中文字将比较少,代码占大部分,代码我也大多加了注释比较容易看懂。

0×02 注入工具的运行环境

运行环境:windows7/8/10 +python 2.7

存在sql注入漏洞环境:PHP+mysql

sql注入类型:盲注

主要的思路:判断url有无注入漏洞→若有漏洞用户决定是否继续注入→猜解数据库名长度→猜解数据库名→猜解数据库中表个数→猜解每个表的长度与表名→根据表名查看表中内容

0×03 代码不足之处

1. 在这里我只写了对于mysql的盲注利用工具,所以对mssql、oracle等其他数据库基本是不好使,本来我是想把这两个也加进去的,但是我精力有限就没有继续完善

2. 这个工具呢实际应用作用不大,适用范围比较小,只适合新手学习用,原因就是因为后面的注入语句没有跟前面的判断语句做动态的关联,而是直接写死的,这就造成了有的环境下不好用,我是没精力改写了,喜欢玩的就下面这个段代码改改,就能适应更多环境更多种类的数据库了。

3. 这个工具呢只能应用于GET提交数据的网站,post的原理一样,只是还没写上呢……

0×04 代码详情

0×05 运行效果

记得在输入url的时候在你觉得可能有注入漏洞的地方加一个$符号,如果有注入漏洞并且你要继续注入的话就输入Y,等到跑出所有表名你就可以根据表名来继续注入因为每个字都要猜所以比较慢才能猜出所有内容,所以要有点耐心啊。

转自FREEBUF,原文链接:http://www.freebuf.com/column/132790.html

(0)

本文由 安全周 作者:空心 发表,转载请注明来源!

热评文章

发表评论