批量检测SQL注入工具

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  说明:

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

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

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

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

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

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

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

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

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

1.1.3  多地址

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

1.2  sqlmap -m

1.2.1  下载地址:

https://github.com/sqlmapproject/sqlmap

1.2.2 说明:

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

使用命令:

python sqlmap.py -m urls.txt --batch

1.3  sqlmapapi

1.3.1  下载地址:

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

1.3.2  说明:

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

【python sqlmapapi.py -s】

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

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

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

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

0×03 爬取链接

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

0×04 总结

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开源优测

如何参与到开源优测-积微速成计划任务

通过过完第一次任务,你应该掌握: 安装和部署git 学会git基本的命令 学会如何使用github来管理的你的学习任务 初步了解如何利用python编程 本...

3016
来自专栏王磊的博客

entity framework框架生成摘要文档为空(没有元数据文档可用)的bug解决方案

简介 entity framework在vs中生成的.edmx文件,会导致摘要(说明)为空的bug,具体bug信息为“没有元数据文档可用。”,导致我们表名打点去...

2795
来自专栏java工会

JVM堆内存使用率持续上升的一种排查思路

最近新版本发布后,在运行一段时间后程序突然无响应了,观察监控,发现JVM堆内存占用在某个时间点突然飙升,最终导致应用无响应:

1350
来自专栏GAN&CV

ubuntu16.04安装caffe cpu版

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/d...

2624
来自专栏点滴积累

geotrellis使用(十八)导入多波段Tiff、读取多波段Tile

Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 多波段数...

4165
来自专栏安富莱嵌入式技术分享

emWin监护仪界面设计,含uCOS-III和FreeRTOS两个版本

配套例子: V6-908_STemWin提高篇实验_监护仪界面设计(uCOS-III) V6-909_STemWin提高篇实验_监护仪界面设计(FreeRTOS...

1715
来自专栏点滴积累

geotrellis使用(二十三)动态加载时间序列数据

目录 前言 实现方法 总结 一、前言        今天要介绍的绝对是华丽的干货。比如我们从互联网上下载到了一系列(每天或者月平均等)的MODIS数据,我们怎么...

3326
来自专栏黑白安全

绕过CDN获取网站IP地址

基于masscan扫描IP端中开放的80端口,程序自动连接每个IP测试,筛选出符合条件的ip保存到result.txt 后续程序会提供”基于扫描子域名获取IP段...

1183
来自专栏FreeBuf

爬虫采集去重优化浅谈

以前在做漏洞Fuzz爬虫时,曾做过URL去重相关的工作,当时是参考了seay法师的文章以及网上零碎的一些资料,感觉做的很简单。近来又遇到相关问题,于是乎有了再次...

3566
来自专栏Albert陈凯

2018-11-18 你知道Adoc文档是什么吗?

AsciiDoc 是一种轻量级标记语言,它可以让我们以纯文本的形式来书写笔记、文章、文档、书籍、网页、幻灯片和 man 帮助。 本指南是常用的 AsciiDoc...

792

扫码关注云+社区

领取腾讯云代金券