sqlmap

一、介绍

1.简介

SQLMAP是一种开源渗透测试工具,可自动执行SQL注入缺陷的检测和注入过程,并接管数据库服务器。它有强大的检测引擎,针对不同类型的数据库提供多样的渗透测试功能选项,实现数据库识别、数据获取、访问DBMS\操作系统甚至通过带外数据连接的方式执行操作系统的命令。以及从数据库指纹识别、从数据库获取数据、 通过带外连接在操作系统上执行命令。

2.功能

  • 自动化SQL注入检测工具
  • 它可以读取数据库内容
  • 获取数据库权限、系统权限

3.SQL注入技术

布尔盲注、时间盲注、报错注入、联合查询、堆叠注入

4.工具网站

sqlmap: automatic SQL injection and database takeover tool

5.语法

python3 sqlmap.py

二、使用

1.查看帮助信息

python3 sqlmap.py -h

python3 sqlmap.py -hh

2.Target

-d 指定直接数据库连接得连接字符串,直接连接到数据库。

-u 指定URL目标

-I 从Burp或WebScarab代理得日志中解析目标

-m 扫描文本文件中给出得多个目标,批量扫描

-r 从文本中加载HTTP请求。 * 标记注入位置

-g 将Google Dork得结果作为目标URLh

3.Techniques⽅法

-a 获取所有信息

-current-user 获取DBMS当前用户

--current-db 获取DBMS当前数据库

--hostname 获取DBMS当前主机名

--is-dba 检测当前用户是否为管理员用户

--users 枚举DBMS用户

--passwords 枚举DBMS用户密码hash

--dbs 枚举DBMS数据库

--tables 枚举DBMS数据库中得表

--columns 枚举DBMS数据库表得列名

--dump 转储DBMS数据库表

--dump-all 转储DBMS所有数据库表

-D db_name 指定要求枚举得DBMS数据库名

-T table_name 指定要枚举得DBMS表

-C column_name 指定要枚举得DBMS列

--batch 从不询问用户输入,使用所有默认配置

4.Request请求选项

--data=DATA 通过POST方式发送数据字符串

--cookie=COOKIE HTTP Cookie头 LMXCMS演示

--user-agent=AGENT 指定HTTP User-Agent头

--random-agent 使用随机选定得HTTP User-Agent头

--host=HOST 指定HTTP HOST header

--referer=REFERER 指定HTTP Referer header

--ignore-proxy 忽略系统默认代理配置

--proxy=PROXY 使用代理连接目标URL --proxy=" http://127.0.0.1:7891 "

--delay=DELAY 可以设定两个请求间得延迟

--timeout=TIMEOUT 可以设定一个请求超过多久判定为超时

--force-ssl 强制使用SSL/HTTPS

-- threads=THREADS HTTP(s)最大并发请求数(默认是1)

--dbms=DBMS 强制指定后端DBMS

--os=OS 强制指定后端得DBMS操作系统

--tamper 使用给定得脚本修改注入数据

5.Detection探测选择

--level=LEVEL 测试等级(1-5, default 1)

--risk=RISK 测试的风险等级(1-3, default 1)

--technique 来指定要使用哪种注入模式,快速扫描

  • level 1 默认的等级,会进行基本的测试,包括GET和POST方式
  • level 2 在原有的基础上增加对cookie的检测
  • level 3 增加对USER AGENT/REFERER的检测
  • level 4 更多的payload
  • level 5 最高等级,包含所有的payload,会尝试自动破解出cookie、xff等头部注入(速度最慢)

6.访问文件系统

--file-read=D:/1.txt 从后端的数据库管理系统文件系统读取文件

--file-write=WFILE 编辑后端的数据库管理系统文件系统上的 本地文件

--file-dest=DFILE 后端的数据库管理系统写入文件的 绝对路径

7.权限操作-⽂件&命令&交互式

--os-cmd='whoami' 执行操作系统命令(OSCMD)

--os-shell 交互式的操作系统的shell

--priv-esc 数据库进程用户权限提升

--sql-shell 执行SQL语句

--file-write --file-dest 写入文件

二、sqlmap常见使用

python3 sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-3/?id=1 --file-write D:/00SIS/123.txt --file-dest D:/00SIS/1/123.php

三、tamper绕过

--tamper=base64encode.py

--tamper=test.py

space2comment.py 用/**/代替空格

apostrophemask.py 用utf8代替引号

equaltolike.py like代替等号

space2dash.py 绕过过滤‘=’ 替换空格字符(”),(’–‘)后跟一个破折号注释,一个随机字符串和一个新行

(’n’)

greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。

space2hash.py 空格替换为#号,随机字符串以及换行符

apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。

halfversionedmorekeywords.py 当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论

space2morehash.py 空格替换为 #号 以及更多随机字符串 换行符

appendnullbyte.py 在有效负荷结束位置加载零字节字符编码

ifnull2ifisnull.py 绕过对IFNULL过滤,替换类似’IFNULL(A,B)’为’IF(ISNULL(A), B, A)’

space2mssqlblank.py (mssql)空格替换为其它空符号

base64encode.py 用base64编码替换

space2mssqlhash.py 替换空格

modsecurityversioned.py 过滤空格,包含完整的查询版本注释

space2mysqlblank.py 空格替换其它空白符号(mysql)

between.py用between替换大于号(>)

space2mysqldash.py替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)

multiplespaces.py围绕SQL关键字添加多个空格

space2plus.py 用+替换空格

bluecoat.py 代替空格字符后与一个有效的随机空白字符的SQL语句,然后替换=为like

nonrecursivereplacement.py双重查询语句,取代SQL关键字

space2randomblank.py代替空格字符(“”)从一个随机的空白字符可选字符的有效集

sp_password.py追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾

chardoubleencode.py双url编码(不处理以编码的)

unionalltounion.py替换UNION ALLSELECT UNION SELECT

charencode.py url编码

randomcase.py随机大小写

unmagicquotes.py宽字符绕过 GPCaddslashes

randomcomments.py用/**/分割sql关键字

charunicodeencode.py字符串 unicode 编码

securesphere.py追加特制的字符串

versionedmorekeywords.py注释绕过

space2comment.py替换空格字符串(‘‘) 使用注释‘/**/’

四、SQL注入流量特征

参数长度异常:攻击者通常会在参数后来尝试构建恶意语句,因此流量特征中需要寻找异常长度的参数。

特殊字符:攻击者通常使用非法字符来构建恶意SQL语句,如:单引号、分号、注释符

异常请求:攻击者肯能会在HTTP请求中包含多个语句或查询、包含错误或缺失的参数。

错误响应:如果应用程序未正确处理SQL注入语句,则可能会返回错误响应。

非常规流量:攻击者可能会在短时间发送大量请求且请求中包含恶意的SQL语句字符等

五、SQLMAP

1.静态特征

特征一: UA头

特征二: 关键字

特征三:在前几个数据包中,会检测是否过滤了 常见的字符

2.动态特征

@@version_compile_os特征

尝试访问上传的脚本文件 (tmpuwxuv.php tmpuhalq.php)

测试命令执行语句特征

调用sys_eval() sys_exec() 尝试执行代码和系统命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值