使用sqlmapapi.py批量化扫描实践

网站建设评论42

0x00 前言

sqlmap可谓是sql注入探测的神器,优秀的探测功能可以让任何一个使用者无基础挖掘sql注入。wooyun上关于sqlmap的文章已经有6篇了,都没有科 普sqlmapapi.py。因此我打算分享下这方面的实践。利用sqlmap测试SQL注入的效率很低,每一个url都需要手动测试,这样肯定不是理想状态。 sqlmap的作者肯定也察觉到这一点了,默默的开发了sqlmapapi.py,当你使用了sqlmapapi.py后才能体会到sqlmap的强大。sqlmap构建了一个自动化 分布式的扫描帝国!这篇文章我主要从sqlmapapi.py的代码角度和AutoSqli类的设计与实现的角度展开。

0x01 sqlmapapi.py综述

sqlmapapi.py给使用者提供了一个强大的功能,服务功能。使用者可以利用sqlmapapi.py开启服务端口,以后只要向sqlmapapi发送请求,就可以进行sql注入,然后发送查询请求,就可以得到这个url是否是注入点,以及详细的内容。同学们看到这里是不是有些小激动呢? sqlmapapi.py的help,我们需要用的是-s参数,也许你也有可能用到-p参数。

使用sqlmapapi.py批量化扫描实践-开水网络

从sqlmapapi.py文件可以看出来,我们利用的文件的调用关系是

使用sqlmapapi.py批量化扫描实践-开水网络

进入到lib/utils/api.py的server类,可以发现通过向server提交数据进行与服务的交互。 一共分为3种类型。

Users\' methods 用户方法Admin function 管理函数sqlmap core interact functions 核心交互函数

可以提交数据的种类如下。

用户方法

@get(\"/task/new\")@get(\"/task//delete\")

管理函数

@get(\"/admin//list\")@get(\"/admin//flush\")

核心交互函数

@get(\"/option//list\")@post(\"/option//get\")@post(\"/option//set\")@post(\"/scan//start\")@get(\"/scan//stop\")@get(\"/scan//kill\")@get(\"/scan//status\")@get(\"/scan//data\")@get(\"/scan//log//\")@get(\"/scan//log\")@get(\"/download///\")

不难发现这些操作可以完全满足我们的测试需求,因此利用这些就可以批量了。当然每一种请求都会有不同的返回值,这些返回值是json的形式传回, 解析就好了。其实这些我已经替大家做好了,调用AutoSqli类就可以了,但是还是要挑一些讲下。

task/new 任务建立

GET /task/new Response:{    \"taskid\": \"1d47d7f046df1504\" }    /scan/<task_id>/status 扫描任务状态GET /scan/<task_id>/status Response:{    \"status\": \"terminated\",    \"returncode\": 0 }

详细内容请各自查阅代码。

0x02 AutoSqli类

我封装AutoSqli类的作用是想轻松的与sqlmapapi.py建立的server进行交互。

AutoSqli的run方法的执行逻辑图

使用sqlmapapi.py批量化扫描实践-开水网络

这些步骤就是正常sqlmap扫描的逻辑,因此调用AutoSqli就可以正常执行。

Show code

使用sqlmapapi.py批量化扫描实践-开水网络

具体代码查看Mspider项目的Autosqli.py文件。

https://github.com/manning23/MSpider

0x03 使用心得

AutoSqli类的初始化可以添加url的data,cookie,referer。因此无需顾虑探测需要登陆的页面。

使用sqlmapapi.py批量化扫描实践-开水网络

对于AutoSqli类的使用,主要注意option_set()方法的使用,其数据结构为字典,由于可添加的内容超长,因此想添加自动的测试设置请参考Mspider项 目的set_option.txt文件。

使用sqlmapapi.py批量化扫描实践-开水网络

说道使用场景,其实我自己已经玩了好久了,说实话效果没达到我的预期,分析下原因。

现在网站的sql注入确实少了,烧饼类型的主要点更少。

sqlmap的初始探针不怎么样,想要精准判断还需要研究,个人研究发现对于mysql数据库,使用时间类型探针效果最好,当然需要自己写探针,详 细的参考Mayikissyou牛的文章。顺便吐槽下,Mayikissyou牛的文章,对于探针的改写真是蜻蜓点水啊,我研究了好久才把lijiejie的那些方法加 上:)

有想法的同学肯定希望我把Mspider和AutoSqli结合下,可是我觉得方法我已经分享了,剩下的同学自己实践吧。实践才能有新的想法。

sqlmapapi.py就是sqlmap为了分布式扫描SQL注入做的,但是资料真的很少,实践的结果更少,希望这篇分享就当抛砖引玉了,有问题欢迎随时和我交流。还有,Mayikissyou牛的文章真心推荐大家读下,配合我这篇文章,sql注入真是想怎么玩就怎么玩了。

0x04 资料

http://volatile-minds.blogspot.jp/2013/04/unofficial-sqlmap-restful-api.html

http://drops.wooyun.org/tips/5254

 

 
“养生”关键词体系建立全过程分析 网站建设

“养生”关键词体系建立全过程分析

健康”、“养生”之类的题材,一直都是比较热门的网站题材。如果要针对类别涵盖比较广的词汇建设网站(比如“养生”这个词),竞争比较激烈,适合有一定储备、有一定经验的站长进行操作,不建议初学者做这样宽范围的...
网站建设

利用无线电波窃取计算机密码

根据安全研究人员的最新报告,电脑中的加密密钥可以通过无线电波而泄漏,攻击者只需要廉价的消费级装备即可获取密钥。在过去,已经有相关专家谈论到有可能通过分析无线电波和电磁辐射来窃取计算机中的敏感数据。而这...
胡远丰:新搭建的网站如何快速获得排名? 网站建设

胡远丰:新搭建的网站如何快速获得排名?

SEO三剑客:新搭建的网站如何快速获得排名?搞精准流量,找精准客户营销专家。你好,我是SEO三剑客,每天一篇文章,分享我的思维经验和方法,希望对你有所帮助。最近一直在实操网站seo,也在不停的学习。原...
自己搭建外贸网站,你准备好了吗? 网站建设

自己搭建外贸网站,你准备好了吗?

从今天开始,接下来一个月左右,我都会给大家讲解外贸网站搭建、外贸网站SEO等技术问题,希望大家用心学哦~今天主要开个头,讲讲网站搭建之前,准备工作。搭建一个网站,要准备三个东西:域名、虚拟主机或者服务...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: