当前位置: 首页 > backend >正文

Web攻防-SQL注入二次攻击堆叠执行SQLMAPTamper编写指纹修改分析调试

知识点:
1、Web攻防-SQL注入-堆叠&二次注入
2、Web攻防-SQL注入-SQLMAP进阶使用

一、演示案例-WEB攻防-SQL注入-堆叠注入&二次注入

堆叠注入

堆叠注入触发的条件很苛刻,因为堆叠注入原理就是通过结束符同时执行多条sql语句,例如php中的mysqli_multi_query函数。与之相对应的mysqli_query()只能执行一条SQL,所以要想目标存在堆叠注入,在目标主机存在类似于mysqli_multi_query()这样的函数,根据数据库类型决定是否支持多条语句执行.
1、目标存在sql注入漏洞
2、目标未对";"号进行过滤
3、目标中间层查询数据库信息时可同时执行多条sql语句
支持堆叠数据库:MYSQL、MSSQL、Postgresql
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二次注入

在这里插入图片描述

原理:注册(写入payload)-登录后修改-修改时以当前用户名为条件触发
黑盒思路:分析功能有添加后对数据操作的地方(功能点)
白盒思路:insert后进入select或update的功能的代码块
注入条件:插入时有转义函数或配置,后续有利用插入的数据

在这里插入图片描述

正常用户注册、登录、修改密码操作

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二次注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、演示案例-WEB攻防-SQL注入-SQLMAP&Tamper使用

在这里插入图片描述

1、SqlMap使用

参考:https://www.cnblogs.com/bmjoker/p/9326258.html

2、数据猜解-常规数据获取&库表列数据&字典

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

获取当前数据库

--current-db

在这里插入图片描述
在这里插入图片描述

根据数据库名获取对应的表名

--tables -D "数据库名"

在这里插入图片描述
在这里插入图片描述

根据数据库名及表名获取对应的列名

--columns -T "表名" -D "数据库名"

在这里插入图片描述

获取具体的列名数据

--dump  -C "email,username" -T "表名" -D "数据库名"

在这里插入图片描述

跨库注入

--dbs //获取所有数据库名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、高权限操作-文件&命令&交互式

引出权限大小

--is-dba 

在这里插入图片描述

引出文件-读

--file-read

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引出文件-写

--file-write --file-dest

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引出命令-执行命令

--os-cmd=whoami 

在这里插入图片描述
在这里插入图片描述

引出命令-交互式命令

--os-shell

在这里插入图片描述

引出命令-执行sql语句

--sql-shell

在这里插入图片描述

4、提交方法-POST&Cookie&JSON

对POST数据进行注入

 --data ""

在这里插入图片描述
在这里插入图片描述

对cookie数据进行注入

--cookie "" 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对整个数据包进行注入(推荐)

-r 1.txt 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、绕过模块-Tamper脚本-使用&开发

在这里插入图片描述

测试:base64注入

--tamper=base64encode.py

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试:base64+json注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试:base64+json注入&再加有过滤的注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

--tamper=test.py

在这里插入图片描述

from lib.core.convert import encodeBase64
from lib.core.enums import PRIORITY__priority__ = PRIORITY.LOWdef dependencies():
passdef tamper(payload, **kwargs):if payload:
payload = payload.replace('SELECT','sElEct')
payload = payload.replace('select','sElEct')
payload = payload.replace('OR','Or')
payload = payload.replace('or','Or')
payload = payload.replace('AND','And')
payload = payload.replace('and','And')
payload = payload.replace('XOR','xOr')
payload = payload.replace('xor','xOr')
payload = payload.replace('SLEEP','SleeP')
payload = payload.replace('sleep','SleeP')
payload = payload.replace('ELT','Elt')return encodeBase64(payload, binary=False) if payload else payload

在这里插入图片描述
在这里插入图片描述

6、分析拓展-代理&调试&指纹&风险&等级

后期分析调试-显示调试信息

-v 0-6
0、只显示python错误以及严重的信息。
1、同时显示基本信息和警告信息。(默认)
2、同时显示debug信息。
3、同时显示注入的payload。
4、同时显示HTTP请求。
5、同时显示HTTP响应头。
6、同时显示HTTP响应页面。

后期分析调试-联动代理进行调试分析

--proxy "http://127.0.0.1:8080" 
--proxy=http://127.0.0.1:1080

在这里插入图片描述
在这里插入图片描述

打乱默认指纹-绕过流量设备识别sqlmap-自定义user-agent

User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www/baidu.com/search/spider.html)

打乱默认指纹-绕过流量设备识别sqlmap-随机user-agent

--random-agent

打乱默认指纹-绕过流量设备识别sqlmap-设定两个HTTP请求的间隔时间

--delay 默认是没有任何间隔,有waf的话,会直接拦截,因为sqlMAP在一瞬间发包量很大,WAF会认为是DD攻击,这个时候就可以利用这个参数绕过或者直接修改SQLMAP的user-agent

使用更多方式类型注入-执行的测试水平等级

--level 1-5
默认是1,cookie需要等级2,HTTP头注入要3以上才行,如果前三个等级都没有找到有效的注入点,可以考虑使用Level 4和Level 5进行更全面的探测。这些等级会使用更多的payload和复杂的注入技术,如联合查询注入、堆叠查询注入等

使用更多方式类型注入-执行的测试风险等级

--risk= 1-3
共有3个等级,对测试的语句有影响,默认为1 
http://www.xdnf.cn/news/12374.html

相关文章:

  • 《基于Apache Flink的流处理》笔记
  • Python Einops库:深度学习中的张量操作革命
  • 体制内 AI写作:推荐材料星 AI文章修改润色
  • MySQL:忘记root密码
  • GPU 图形计算综述 (三):可编程管线 (Programmable Pipeline)
  • 【动手学MCP从0到1】2.3 MCP中的Resource和Resource Template服务构建步骤详解
  • 建筑设备一体化监控系统:提升能效与运维效率
  • MySQL 的 redo log 和 binlog 区别?
  • 为 ESP32 解锁跨平台存储识别能力:支持 FAT、NTFS、EXT4、APFS 的轻量级 BlockFS 组件
  • Java中的阻塞队列
  • [arthas]arthas安装使用
  • NVM!(可以快速替换你的node版本)
  • Mysql主从复制原理分析
  • 高性能分布式消息队列系统(三)
  • CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)
  • AtCoder 第408​场初级竞赛 A~E题解
  • 强化学习入门:Gym实现CartPole随机智能体
  • VBA信息获取与处理专题五第一节:利用CDO发送简单邮件
  • AirSim/Cosys-AirSim 游戏开发(二)使用自定义场景
  • Python训练营---Day45
  • DeepSeek 农业大模型:应用潜力与数据隐私保护的双重考量
  • Python训练营---Day44
  • MySQL常用知识总结
  • 三分算法与DeepSeek辅助证明是单峰函数
  • 学习路之PHP--webman安装及使用、webman/admin安装
  • OpenLayers 地图投影转换
  • 视频监控EasyCVR3.7.2版本支持更改播放器默认解码方式,该如何进行配置?
  • 组合与排列
  • 湖北理元理律所债务优化实践:法律技术与人文关怀的双轨服务
  • 【LC#39270】判断子序列爬楼梯(dp算法 第一期)