Hadesy2k更新勤快,但检测sql注入点方式存漏洞?

检测维修 0 115

作者名叫Hadesy2k,能看出他更新内容相当频繁,这篇文章创作于11月23日,这是它的初版,而到了12月28日已经出了修订版,根据画面信息可知,他在月初的时候也发布过新内容。

早些时候在十月,我重新审视过这段代码,发现编写者在排查SQL注入风险时,仅通过在参数内容后附加单引号,并依据页面反馈的错误提示来判断,这种检测手段显然会忽略大量潜在问题。倘若一个网址后面附带着多个参数,而所有参数值都加入了单引号,情况会变得相当棘手,让我感到十分担忧。

在【src/scanner.py】里可以看到这一句:

这个网址由三部分构成,第一部分是域名,第二部分是问号,第三部分是用和号连接的多个参数,这些参数之间通过和号进行拼接,形成一个完整的查询字符串

将参数与有效载荷逐一比对,针对查询中的每一个参数

))】

在【src/scanner.py】里可以看到这一句:

【website = domain + “?” + (“&”.join(

param +payload for param in queries

))】

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

十一月份刚开始的时候进行了一次升级,发现攻击载荷里面不再仅仅包含单引号,还掺杂了多种其他符号,比如括号和分号。

这部分内容没有进行数据注入,参数信息一旦发生变动,就会导致页面反馈的信息出现偏差,因此准确的处理方式是针对每个参数信息,分别附加测试数据。

我重新调整了一下,现在逐个检测各个参数的取值,如果需要的话。大家可以去我的github【https://github.com/Martin2877/sqliv-M/blob/master/src/scanner.py】查阅。

令人欣慰的是,作者已将检测POST请求列入他的待办事项清单,我们拭目以待。

后来我在12月28日再次访问时,发现作者又上传了大量新内容,并且增加了使用docker实现更便捷部署的功能,请给予支持。

1.1.3 多地址

sqliv自身不具备处理多个地址批量的功能,因此我们需要自行开发一个,这个任务并不复杂,具体实现方式请参考下图,相关代码已上传至我的github仓库

1.2 sqlmap -m

1.2.1 下载地址:

sqlmap批量测试教程_sql注入测试方法_sql注入漏洞检测工具

这个网址指向一个名为sqlmap的项目仓库,它托管在github平台上,专门用于渗透测试中的数据库盲注和联合查询攻击,通过自动化工具辅助发现和利用sql注入漏洞,提供多种扫描模式和可配置选项,支持多种数据库管理系统,包括mysql、postgresql、mssql和oracle等,该工具采用命令行界面,拥有丰富的参数和选项,能够适应各种复杂的网络环境和安全需求,是安全研究员和渗透测试人员常用的利器之一

1.2.2 说明:

这款强大的sqlmap工具,无需多言,其-m参数专门用于成批检测网址,不过它是单线程运作,因此速度较慢,但实际效果要优于sqlmapapi。

使用命令:

执行sqlmap.py脚本,传入urls.txt文件作为目标列表,采用批处理模式运行

1.3 sqlmapapi

1.3.1 下载地址:

该网址指向一个GitHub项目,项目名称为sqlmapapi-M,由用户Martin2877创建和维护。

1.3.2 说明:

该接口支持并发处理,首先需在sqlmap主目录下运行sqlmapapi.py文件来开启功能。

【python sqlmapapi.py -s】

接着进入sqlmapapi-M的主文件夹,在【url.txt】文档里填写需要成批检测的目标网址,

接着通过指令开展集体检测:运行【python sqlmapbatch.py】程序

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

这个时限设定为四秒,接着去测试下一个,其他人也可以把时间调长一些,这样使用起来会更顺畅。我这边没有实现排队功能之类的,大家可以根据需要自行调整。

0×03 爬取链接

当然,前面提到的那些方法都需要借助url.txt文件,为此我单独开发了一个爬虫程序,其地址位于【https://github.com/Martin2877/FindLinks】;这个工具专门用于抓取某个站点内的所有连接;此外,互联网上存在许多能够通过检索发现可能存在sql注入问题的网站,关于这些内容在此不再详细展开。

0×04 总结

综合来看,【sqlmap -m】这类工具或方法的表现最为出色,它不会出现超时情况,针对单个地址会持续检测直至完成,因此测试过程耗时非常长,若持续工作一整天,大约只能处理五百个地址。相比之下,slqmapapi虽然设置了超时限制,运行速度会快得多,但检测效果相对较差。预计未来加入队列功能后,可以同时解决速度与效果这两个方面的矛盾。sqliv在执行速度上更胜一筹,它通过注入载荷并观察数据库是否出现错误来进行检测,这种检测方式也是其一个不足之处,不过可以通过修改代码,使其支持加载载荷列表来进行测试,这样一来,它也成了一个相当不错的检测工具。

以上,就是这么多啦,祝愿大家能更快更多地挖出sql注入哦~

相关推荐: