2019独角兽企业重金招聘Python工程师标准>>>

sqlmap工具使用用法详解
QLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理,下面我们来看sqlmap工具使用用法详解吧。
sqlmap平时使用得非常的多,但命令也是十分的多。每次用的时候,都要去网上搜索。于是决定自己总结一下sqlmap常见的用法,方便自己使用。
特殊参数
-v
-v表示显示sqlmap在进行注入时的详细信息,一共有七个等级,默认为1
0,只显示python错误以及严重的信息
1,同时显示基本信息和警告信息
2,同时显示debug信息
3,同时显示注入的payload
4,同时显示HTTP请求
5,同时显示HTTP响应头
6,同时显示HTTP响应页面
–level
默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level参数且数值>=2的时候会进行cookie注入测试;当>=3时,会进行User-Agent和Referer的注入测试。
–risk
risk设定风险等级,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR测试语句。
-f或者–fingerprint
执行检查广泛的DBMS版本指纹,这个参数用得不多。
获取URL
-u或者–url
-u是最常见、常用的用法
python sqlmap.py -u "http://www.example.com/index.php?id=1"
-l
从burpsuite或者WebScarab代理日志中去测试每个URL是否存在SQL注入
-r
从文本文件中获取HTTP请求(这就要求此文本文件保存的信息是HTTP请求的),这样HTTP就可以利用HTTP请求中的参数。
例如文本文件中的内容为:

POST /index.php HTTP/1.1
Hos: www.example.com
User-Agent: Mozilla/4.0
id=1
那么使用sqlmap进行注入时,sqlmap自动将HOST和User-Agent设置为文本文件中的值
当处理的请求是HTTPS的时候,则需要使用–forc-ssl参数来使用,或者在HOST头后面加上:443。
请求
POST请求
参数:–data
–data主要适用于POST方式提交。用法如下:

python sqlmap.py -u "http://www.example.com/index.php" --data="id=1"
cookie相关
参数:-cookie,–load-cookies,–drops-set-cookie
cookie参数在sqlmap中的应用主要是有2个方面:
Web应用需要进行登陆的时候
测试cookie注入
如果需要使用cookie进行登陆,则需要通过–cookie将cookie进行赋值。在HTTP请求中,遇到Set-cookie时,sqlmap会自动获取并且在以后的请求中加入,并且会尝试SQL注入。
当–level>=2时,则会尝试进行cookie的注入测试。
User-Agent相关
参数:–user-agent,–random-agent
默认情况下sqlmap的HTTP请求头中的User-Agent是:

sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
可以使用–user-agent参数来进行修改,同时也可以使用–random-agent参数来随机化的从./txt/user-agents.txt中获取。
当–level参数设定为3或者是3以上时,会尝试对User-Agent进行注入测试。
Referer头
参数:–referer
sqlmap可以在请求中伪造HTTP中的referer,用法与user-agent的用法相同。当–level参数设定为3或者3以上的时候会尝试对referer注入。
请求设置
设定请求间隔
参数:–delay
设定两次请求间的时间间隔。若设定为0.5则表示间隔时间是半秒,默认是没有延迟
设定超时时间
参数:–tiemout
设定超时时间,主要是设定一个请求超过多久被判定为超市。弱设定为10.5表示是10.5秒,默认是30秒。
设定超时重试
参数:–retries
当请求超时时,设定重新尝试连接次数,默认是3次。
关掉URL参数编码
参数:–skip-urlencode
关闭URL编码,这个参数一般用得比较少。目前几乎所有的web服务器都支持RFC标准。
执行自定义Python代码
参数:–eval
在有些时候,需要根据一个参数的变化而修改另一个参数,才能形成正常的请求。此时就需要使用到--eval。例子如下

python sqlmap.py -u "http://www.example.com?id=1&hash=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib;hash=hashlib.md5(id).hexdigest()"
上面的请求参数中的hash值就是id值的md5,这时就需要使用到自定义Python代码了。
注入
测试参数
参数:-p,–skip
-p,表示的就是需要进行注入测试的参数。例如,-p “id,user-agent”
–skip,表示不不需要进行测试的参数,例如–skip=”user-agent”
伪静态注入
很多框架会使用URL重写技术,此时sqlmap就无法使用参数注入,但是可以在需要测试的参数后面加上*
例子如下

python sqlmap.py -u "http://blog.spoock.com/2016/09/04*/sqli-bypass/"
绕WAF
参数:–tamper
很多时候有WAF设备会拦截sqlmap的注入,此时就需要使用--tamper对注入的SQL语句进行变形来进行绕过。所有的tamper脚本都是在sqlmap中的tamper中的脚本有定义的,可以进入到tamper目录下进行查看。

python sqlmap.py - u"http://www.example.com?id=1" --tamper tamper/between.py,tamper/randomcase.py
提取数据
标志
参数:-b,–banner
检索数据库管理系统的标识
用户
参数:–current-user
返回当前数据库的管理用户
当前数据库
参数:–current-db
返回当前连接的数据库
DBA检测
参数:–is-dba
检测当前的管理用户是否是DBA
数据库枚举
参数:–dbs
如果当前的用户可以读取所有的数据库的信息,即可列出所有的数据库
数据库表枚举
参数:–tables -D someDatabase
列出某个数据库(someDatabase)中所有的表名,例子如下:

python sqlmap.py -u "http://www.example.com?id=1" --tables -D cms
字段枚举
参数:–columns -D someDatabase -T someTable
列出someDatabase数据库中的someTable表中的所有的字段信息。如果没有使用-D参数指定某个数据库的时候,则默认使用当前数据库

Python sqlamp.py -u "http://www.example.com?id=1" --columns -D cms -T users
获取表中数据的数目
参数:–count
使用–count就可以获取表中数据的个数

python sqlmap.py -u"http://www.example.com?id=1" --count -D cms
上述的sqlmap的语句会列出在cms数据库中所有的表的数据
下载表中的数据
参数:–dump -D someDatabase -T someTable -C someColumns
使用–dump就可以将某个表中的数据下载到本地。指定-C的值表示是下载某一列所有的数据,如果没有指定则是下载表中所有的数据。

python sqlmap.py -u "http://www.example.com?id=1" --dump -D cms - T users
MISC
自定义SQL语句
参数:–sql-query,–sql-shell
虽然sqlmap会自行选择sql语句进行测试,但是也可以选择执行自定义的SQL语句。

python sqlmap.py -u"http://www.example.com?id=1" --sql-query "select database()"
获取shell
参数:–os-cmd,–os-shell
使用–os-shell参数可以模拟一个真实的shell,在此shell上可以输入任何想执行的命令。
这个命令平时使用得较少,等有一定的使用体会再来进行详细的补充说明。

转载于:https://my.oschina.net/sjcfw680/blog/789474

sqlmap工具使用用法详解相关推荐

  1. JDK工具jstatd用法详解(转)

    jstatd,即虚拟机的jstat守护进程,主要用于监控JVM的创建与终止,并提供一个接口允许远程监控工具依附到在本地主机上运行的JVM. 用法摘要 jstatd [ options ] option ...

  2. Linux下安全扫描工具Nmap用法详解

    扫描器是一种能够自动检测主机安全性弱点的程序.扫描器通过发送特定的网络数据包,记录目标主机的应答消息,从而收集关于目标主机的各种信息.目前网络上有很多扫描软件,比较著名的扫描器有SSS,X-Scan, ...

  3. java 非侵入式_Java非侵入式API接口文档工具apigcc用法详解

    一个非侵入的api编译.收集.Rest文档生成工具.工具通过分析代码和注释,获取文档信息,生成RestDoc文档 前言 程序员一直以来都有一个烦恼,只想写代码,不想写文档.代码就表达了我的思想和灵魂. ...

  4. python网络抓包工具_抓包工具 Charles 用法详解

    前言 抓包工具第一篇文章我们讲过,主要有 Charles 和 Fiddler,关于 Fiddler 抓包 APP 的,我之前写过一篇文章:Fiddler抓包APP教程,Fiddler 抓包 App 请 ...

  5. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

  6. python 内存分析工具_python内存监控工具memory_profiler和guppy的用法详解

    python2.7在内存管理上相比python3还是有些坑的,其释放后的内存仍然保留在python的内存池中,不被系统所用.python循环引用的变量不会被回收,这会导致程序越运行,占用的内存越大.我 ...

  7. [网络安全提高篇] 一一九.恶意软件动态分析经典沙箱Cape的安装和基础用法详解

    终于忙完初稿,开心地写一篇博客. "网络安全提高班"新的100篇文章即将开启,包括Web渗透.内网渗透.靶场搭建.CVE复现.攻击溯源.实战及CTF总结,它将更加聚焦,更加深入,也 ...

  8. Linux下的awk用法详解

    Linux下的awk用法详解 一.awk介绍 二.awk的语法 三.awk常见用法 四.awk其他用法 五.awk语言特性 一.awk介绍 1.AWK 是一种处理文本文件的语言,是一个强大的文本分析工 ...

  9. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

最新文章

  1. 【高并发】又一个朋友面试栽在了Thread类的stop()方法和interrupt()方法上!
  2. 高级学员:2015年10月24日作业
  3. 【Linux系统编程】快速查找errno错误码信息
  4. LTE 有关HARQ
  5. System tuning中经常用到的一些Tcode
  6. centos查看端口命令
  7. Qt: MinGW 与MSVC的区别
  8. WPF设置ListBoxItem失去焦点时的背景色
  9. js(Dom+Bom)第五天(2)
  10. JavaScript正则式练习
  11. python算法有多少个_Python算法比较两个排序的列表并计算多少个...
  12. linux 报错 bash ‘/bin/sh: Syntax error: “(” unexpected
  13. firewalls 查看防火墙状态_5条命令玩转Linux系统防火墙
  14. 计算机辅助翻译入门第十章课后答案,计算机辅助翻译入门
  15. 迅为-iMX6ULL开发板原创嵌入式开发文档系统化学习
  16. 怎样做好软件测试经理
  17. 【noi.ac #1759】ZYB的测验计划
  18. STM32H7 DAC2+BDMA
  19. spring boot连接mysql数据库
  20. 盘点SCI、SSCI、EI……的前世今生

热门文章

  1. unity 当前移动方向_Unity小工具:溶解效果(Dissolve)
  2. layui 树状图默认全部展开_SolidWorks 钣金展开基础设定
  3. 用php循环星期一到星期日,php – 获取最后一个星期一 – 星期日的日期:有更好的方法吗?...
  4. 计算机一级插入页眉,2017年计算机一级WPS辅导:WPS中页眉页脚的设计技巧
  5. 共享可写节包含重定位_理解重定位
  6. java的头怎么写_JAVA对象布局之对象头(Object Header)
  7. javascript 忽略 报错_.babelrc ignore忽略js无效
  8. application实现网页计数_SpringBoot整合NoSQL 数据库(Redis)实现缓存
  9. Promise的deferred对象详解
  10. Vue-cli 4.x 中的全局样式配置