前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >批量检测SQL注入工具

批量检测SQL注入工具

作者头像
奶糖味的代言
发布2018-04-16 14:33:32
5.3K0
发布2018-04-16 14:33:32
举报
文章被收录于专栏:小白安全小白安全

0×01 前言

SQL注入,这个类型的漏洞我真的学了好久好久好久好久,即是我刚刚开始接触安全就学习的第一种漏洞,也是一个迄今为止还在学习的漏洞类型,只能说,感觉自己还是有很多还是不会的。从一开始的手工一个网站一个网站去测,到之后的用google hacking的方法去找可疑链接,再到后面用sqlmap批量检测。也是经历了至少半年的时间。今天才写了个调用sqlmapapi的脚本,想跟大家分享一些走过的坑和思路。

0×02 SQL注入批量测试的几种方法

本文的目的在于通过看别人的代码来学习原理,同时也掌握自己造轮子的能力。这里只是列举了我自己平时用到的几种方法,当然网上能找到更多更好的工具,或者更好的思路,都是值得学习的。

下面就列举三种方法是:sqliv、sqlmap -m、sqlmapapi。

1.1  sqliv

1.1.1  下载地址:

https://github.com/Hadesy2k/sqliv

1.1.2  说明:

1.png
1.png

作者是Hadesy2k,可以看到作者大大更新还是挺勤快的,写这文章的日期是11月23日(文章第一版)(第二版已经是12月28日),从图里可以看出作者在月初的时候更新了一波。

而更之前在10月份的时候我看了一遍这个代码,发现作者在检测sql注入点的时候只是在参数值后加了个单引号,然后检测返回页面的报错信息。以这种方式去测试当然会遗漏很多呀。而且如果一个链接后跟多个参数,同时在所有参数值里加单引号。我头上直冒汗。

在【src/scanner.py】里可以看到这一句: 【website = domain + “?” + (“&”.join([param +payload for param in queries]))】

每个参数值加payload后组合一起,现在依然是这种方式。

在11月初更新一波后,可以看到payload不再是只有单引号了,还有了很多其它的如括号,分号等。

2.png
2.png
3.png
3.png

这个是lesson是没有注入的,参数内容改变的话会影响页面返回结果,所以正确的方法应该是单独给每个参数的内容加payload进行测试。

4.png
4.png

我自己改了下,变成分别单独测试所有参数值,有需要的话。大家可以去我的github【https://github.com/Martin2877/sqliv-M/blob/master/src/scanner.py】看。

5.png
5.png

值的高兴的是,作者把检测POST请求放在他的【To Do】里了,期待。

6.png
6.png

(而当我12月28号再去看的时候,作者又更新了许多,还加入了docker更方便部署。点个赞。)

7.png
7.png

1.1.3  多地址

因为sqliv本身是没有多地址批量的,所以我们自己写一个咯,还是比较简单的,见下图,代码也在我的github里

8.png
8.png

1.2  sqlmap -m

1.2.1  下载地址:

https://github.com/sqlmapproject/sqlmap

1.2.2 说明:

神器sqlmap,不多说,-m模式,就是用来批量测试url的,不过是单线程,比较慢,效果比sqlmapapi好。

使用命令:

代码语言:javascript
复制
python sqlmap.py -m urls.txt --batch
9.png
9.png

1.3  sqlmapapi

1.3.1  下载地址:

https://github.com/Martin2877/sqlmapapi-M

1.3.2  说明:

api模式有多线程,先通过sqlmap根目录中的sqlmapapi.py启动服务:

【python sqlmapapi.py -s】

10.png
10.png

然后到sqlmapapi-M根目录下,在【url.txt】中写你要批量测试的地址:

11.png
11.png

然后使用命令执行批量扫描:【python sqlmapbatch.py】

12.png
12.png

效果如图,而其关键代码如下:

13.png
13.png

这里设置了超时时间是4秒,然后测下一个,大家也可以设置更久一点,效果也会更好。我这里没有做队列什么的,大家可以自己改哈。

0×03 爬取链接

当然上面几种方法都需要用到url.txt,针对这个我另外写了一个爬虫工具,见【https://github.com/Martin2877/FindLinks】,是爬取一个网站下链接的工具;网上还有很多能通过搜索找可能有sql注入的网站,这里就不多描述啦。

0×04 总结

总结一下,上面所列的几个工具或方法效果最好的当然是【sqlmap -m】,因为没有“超时”,一个地址会一直测到完为止,所以测的时间真的很久,测一天的话也就只能有500个地址吧。而这里slqmapapi因为设置了超时,所以会快很多,不过效果没有那么好。以后加了队列应该就能顾及两个方面的问题。而sqliv相对来说比较快,因为只是加payload看返回是否有数据库报错(也是其缺点),当然可以改代码变成加载payload字典的方式去测,也算是不错的一个工具。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0×01 前言
  • 0×02 SQL注入批量测试的几种方法
    • 1.1  sqliv
      • 1.2  sqlmap -m
        • 1.3  sqlmapapi
        • 0×03 爬取链接
        • 0×04 总结
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档