SQLMap使用详解

一、SQLMap介绍

  • sqlmap是一个有python语言编写的开源渗透测试工具,它主要用来检测sql注入漏洞,是一款功能强大的失去了漏洞检测利用工具。
  • 它可以检测的数据库有:access、mssql、MySQL、Oracle、postgresql、db2、sqlite等。
  • 可以进行sql盲注、union查询、显错注入、延迟注入、post注入、cookie注入等。
  • 其他功能:
    执行命令、列举用户、检测权限、自动破解、数据导出等功能。

二、基本参数

  • sqlmap.py -h 查看帮助选项
  • is-dba 当前用户权限
  • dbs 所有数据库
  • current-db 网站当前数据库
  • users 所有数据库用户
  • current-user 当前数据库用户
  • tables 参数:列表名
  • columns 参数:列字段
  • dump 参数:下载数据
  • –dump 获取表中的数据,包括列
  • –dump-all 转存DBMS数据库所有表项目
  • –level 测试等级(1-5),默认为1
  • 读取数据库—>读取表—>读取表中的列—>获取内容
  • -D 指定数据库
  • -T 指定表
  • -C 指定列
  • –dbms=mysql Oracle mssql 指定数据库
  • –users 枚举所有用户
  • –passwords 枚举所有用户密码
  • –roles 列出数据库管理员角色
  • –priviles 列出数据库管理员权限
  • 列举数据库的架构
  • sqlmap.py “http://xx.com/int.php?id=1” --schema --batch --exclude-sysdbs

三、探测等级

  • 参数: --level
  • 共有五个等级,默认为1,sqlmap使用的payload可以在xml/payloads.xml中看到,也可以根据相应的格式添加自己的payload。
  • 这个参数不仅影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试,HTTP Cookie在level为2的时候就会测试,HTTP User-Agent/Referer头在level为3的时候就会测试
  • 在不确定那个payload或者参数为注入点的时候,为了保证全面性,建议使用高的level值。payload(注入语句)

四、显示调试信息

  • -v 显示调试信息有7个级别
  • 0、只显示python错误以及严重的信息
  • 1、同时显示基本信息和警告信息(默认)
  • 2、同时显示debug信息
  • 3、同时显示注入的payload
  • 4、同时显示HTTP请求
  • 5、同时显示HTTP响应头
  • 6、同时显示HTTP相应页面

五、风险等级

  • 参数:–risk
  • 共有四个风险等级,默认是1会测试大部分的测试语句,2会增加基于时间的测试语句,3会增加OR语句的SQL注入测试
  • 在有些时候,例如在UPDATE的语句中,注入一个OR的测测试语句,可能导致更新的中整个表,可能会造成很大的风险
  • 测试的语句同样可以在xml/payloads.xml中找到,也可以自行添加payload

六、获取目标

  • 参数:-u或者–url

  • 格式:http(s)?/tageturl[:port]

  • 例如:python sqlmap.py -u http://www.target.com/vuln.php?id=1

  • 从文本中获取多个目标

  • 参数:-m

  • 文件中保存url格式如下,sqlmap会一个一个检测

  • www.target1.com/vuln1.php?q=foobar

  • www.target2.com/vuln2.asp?id=1

  • www.target3.com/vuln3/id/1*

七、获取http请求注入

  • 参数:-r
  • sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie,POST数据等等)
  • 比如文本文件内容如下:
  • POST/vuln.php HTTP/1.1
  • Host:www.target.com
  • User-Agent:Mozilla/4.0
  • id=1

八、处理Google搜索结果

  • 参数:-g
  • sqlmap可以测试注入Google的搜索结果中的GET参数(只获取前100个搜索结果)
  • 例子:
  • python sqlmap.py -g “inurl:”.php?id=1""

九、检测POST注入

  • –data
  • 此参数是把数据以POST方式提交,sqlmap会像检测GET参数一样检测POST的参数
  • 例子:
  • python sqlmap.py -u “http://www.cracer.com/cracer.php” --data=“id=1”

十、–param-del

  • 参数拆分字符
  • 当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数
  • 例子:
  • python sqlmap.py -u “http://www.cracer.com/vuln.php” --data=“query=footbar;id=1” --param-del=";"

十一、–cookie

  • 适用于cookie注入
  • 将参数加入到cookie注入测试
  • sqlmap -u “http://www.ntjx.org/jsj/DownloadShow.asp” --cookie “id=9” --table --level 2

十二、–referer,–headers,–proxy

  • –referer

  • sqlmap可以在请求中伪造HTTP中的referer,当–level参数设定为3或者3以上的时候会尝试对referer注入

    扫描二维码关注公众号,回复: 10607888 查看本文章
  • –header

  • 可以通过–headers参数来增加额外的http头

  • –headers “client-ip:1.1.1.1”

  • –proxy

  • 使用–proxy代理格式:http://url:port

发布了25 篇原创文章 · 获赞 2 · 访问量 4271

猜你喜欢

转载自blog.csdn.net/qq_33331244/article/details/101210247
今日推荐