如何绕过api的防重放做安全测试

news2025/1/24 8:44:32

一、问题引入:api接口测试,会检测请求头中的nonce参数的值,每次请求的值必须不同,否则发包失败

        笔者在进行api接口的测试时(因为菜没有工具,只能另辟蹊跷),使用postman+xray进行安全测试,但是因为nonce参数检测的缘故,导致xray的发出的扫描包全部失效,导致无法使用xray进行安全扫描,由此引入问题。

二、解决思路

 2.1 给xray配置http请求的Header头的nonce参数(pass)

 这种方式,流量走向还是 postman --> xray --> 服务器

 查看xray的配置文件,我的版本为1.9,配置文件config.yaml

但是在这个配置文件中,headers的配置的值是静态的,nonce的值并不能动态变化,也就是说每次发包的nonce值还是一致的,并没有解决问题。此条思路pass,或者是我理解的不够,没有配置好,希望知道的大佬告知一声。

2.2 在xray之后再配置一条代理,流量postman-->xray-->代理--> 服务器

        后来决定另辟一条线,就是给xray加代理,在xray的上层代理处将xray发出扫描的扫描请求包的header头中nonce替换掉,已实现绕过api防止重放的验证。

在xray的配置文件中配置代理即可,当前xray支持 https http socket5的代理

三、实践(postman --> xray --> burpsuite --> 服务器)

我这里为了实现上述的解决方案,用了postman+xray+burpsuite的结局方案。

整理思路及配置如下:

  • 1、postman配置代理为xray

  • 2、主机安装xray和burp的证书

双击对应的证书文件即可

  • 3、xray配置代理为burpsuite监听端口

  • 4、burp创建扩展脚本(当前bp版本为2023.1),将所有请求包的nonce参数的值替换

# -*- coding: utf-8 -*-
from burp import IBurpExtender
from burp import IHttpListener
import random
import string

class BurpExtender(IBurpExtender, IHttpListener):

    def registerExtenderCallbacks(self, callbacks):
        # 获取 Burp 的回调对象
        self._callbacks = callbacks

        # 获取扩展工具
        self._helpers = callbacks.getHelpers()

        # 设置扩展名
        callbacks.setExtensionName("Nonce Modifier")

        # 注册 HTTP 监听器
        callbacks.registerHttpListener(self)

    def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo):
        # 仅处理请求
        if messageIsRequest:
            print("Processing HTTP request message")
            # 获取请求信息
            request_info = self._helpers.analyzeRequest(messageInfo.getRequest())
            headers = request_info.getHeaders()

            # 修改请求头中的 nonce 参数
            modified_headers = self.modifyNonceHeader(headers)
            
                # 打印修改后的请求头
            print("Modified Headers:", modified_headers)

            # 构造修改后的请求
            modified_request = self._helpers.buildHttpMessage(modified_headers, messageInfo.getRequest()[request_info.getBodyOffset():])

            # 更新请求消息
            messageInfo.setRequest(modified_request)

    def modifyNonceHeader(self, headers):
        # 寻找并修改 nonce 参数
        for i in range(len(headers)):
            if headers[i].lower().startswith("nonce:"):
                headers[i] = "Nonce: {}".format(self.generateRandomNonce())

        return headers

    def generateRandomNonce(self):
        # 生成随机 8 位字符串
        # 生成随机 8 位字符串,并去除两侧空白字符
        nonce = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8)).strip()
        print("Generated Nonce:", nonce)
        return nonce

至此,所有配置完毕。

ps:也可以使用其他代理工具,只要能实现对应功能即可,比如mitmproxy代理工具

四、可能存在的问题

1、如果服务器必须使用https请求,这里涉及证书的问题,因为比较经过多层代理转发,xray可能会有tls连接失败的问题

[ERRO] 2023-10-17 16:09:16 [sqldet:detector.go:307] Post "https://xxx.xxx.xxx.xxx/open/api/groups": remote error: tls: user canceled

目前推测还是证书的问题,还希望有大佬看到能详解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1101828.html

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

相关文章

【LeetCode】《LeetCode 101》第十三章:链表

文章目录 13.1 数据结构介绍13.2 链表的基本操作206. 反转链表(简单)21. 合并两个有序链表(简单)24.两两交换链表中的节点(中等) 13.3 其它链表技巧160. 相交链表(简单)234. 回文链表…

Typora +Picgo 搭建个人笔记

文章目录 Typora Picgo 搭建个人笔记一、Picgo Github 搭建图床1.基础设置2. 将配置导出,方便下次使用 二、Typora:设置 :1. 基本设置2. 导出自动提交3. 备份图片 Typora Picgo 搭建个人笔记 typora 下载地址: https://zahui.fan…

使用UniApp实现视频数组自动下载与播放功能:一步步指导

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

阶段性总结

uart协议: 通用异步收发器 UART(Universal Asynchronous Receiver/Transmitter),是一种串行、异步、全双工的通信协议,将所需传输的数据一位接一位地传输,在UART通讯协议中信号线上的状态位高电平代表’1’&#xff0…

Java应用性能问题诊断技巧

作者:张彦东 参考:https://developer.aliyun.com/ebook/450?spma2c6h.20345107.ebook-index.28.6eb21f54J7SUYc 文章目录 (一)内存1.内存2.内存-JMX3.内存-Jmap4.内存-结合代码确认问题 (二)CPU1.CPU-JMX或…

短视频矩阵系统源码开发

短视频剪辑矩阵系统开发源码----源头搭建 一、源码技术构建源码部署搭建交付之---- 1.需要协助系统完成部署、接口全部正常接入、系统正常运行多久?7个工作日 2.需要准备好服务器以及备案域名 3.短视频SEO模块一年项目带宽,带宽最低要求10M,…

如何将电脑上的“小电影”隐藏为一张图片?这波操作绝了!!

大家好,我是冰河~~ 最近,有很多小伙伴想跟我学渗透。平时时间确实太忙了,除了要研发公司项目外,写公号,写博客,录视频,写书稿,维护开源项目,几乎占据了我全部的业余时间…

【性能测试】使用JMeter对code论坛进行压力测试

1.项目介绍 项目简介 code 论坛是一个技术交流社区。主要功能有发布帖子,查看帖子,评价帖子,删除帖子,点赞帖子,站内信,个人中心,修改个人信息等。是一个基于 Spring 的前后端分离项目。 项目链…

vue3自定义指令批量注册

第一步、在src目录下新建directives文件文件夹 用来存放不同的指令,以dbounce指令为例: 第二步、在directives目录下创建debounce.js文件,文件内容如下: // 防抖 const debounceClick {mounted(el, binding) {let timerel.addE…

点云处理【三】(点云降采样)

点云降采样 第一章 点云数据采集 第二章 点云滤波 第二章 点云降采样 1. 为什么要降采样? 我们获得的数据量大,特别是几十万个以上的点云,里面有很多冗余数据,会导致处理起来比较耗时。 降采样是一种有效的减少数据、缩减计算量…

喜报 | 擎创科技实力亮相2023科创会并荣获科技创新奖

近日,由国家互联网数据中心产业技术创新战略联盟(NIISA)主办的“2023第二届国际互联网产业科技创新大会暨互联网创新产品展览会”于北京圆满落幕。 擎创科技副总裁冯陈湧受邀出席本次论坛,并发表了“银行分布式核心智能运维体系思…

毫米波雷达模块技术革新:在自动驾驶汽车中的前沿应用

随着自动驾驶技术的快速发展,毫米波雷达模块的技术革新成为推动这一领域的关键因素之一。本文将深入研究毫米波雷达模块技术的最新进展,并探讨其在自动驾驶汽车中的前沿应用。 毫米波雷达模块的基本原理 解释毫米波雷达模块的基本工作原理,强…

Goby 漏洞发布|Honeywell PM43 loadfile.lp 文件命令执行漏洞(CVE-2023-3710)

漏洞名称:Honeywell PM43 loadfile.lp 文件命令执行漏洞(CVE-2023-3710) English Name:Honeywell PM43 loadfile.lp file command execution vulnerability (CVE-2023-3710) CVSS core: 9.8 影响资产数: 96 漏洞描…

等保三级测评(MySQL)

mysql版本号:5.7.x 进入Mysql 通过mysql -u root -p 进入MySQL命令行,开展数据库配置核查; a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; SELECT Host,User,authentication_string,plugin FROM mysql.user;b)被测…

软件测试(一)概念

软件测试 软件测试的生命周期: 需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估 需求分析:需求是非完整,需求是否正确测试计划:确定软件由谁测试,什么时候开始,什么时候结束,…

内网和热点同时连接使用配置

解决如标题问题 查看当前永久路由信息 route print截图保存(重要) 截图保存(重要)查出来的永久路由,以防配置不成功时回退,回退方法就是下面的“添加永久路由” 删除当前的路由 0.0.0.0 是上面查出的网络地址 route delete 0.0.0.0内网IP信息 添加永久…

MATLAB——RBF、GRNN和PNN神经网络案例参考程序

欢迎关注“电击小子程高兴的MATLAB小屋” %————RBF程序实例 %% I. 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat %% % 2. 随机产生训练集和测试集 temp randperm(size(NIR,1)); % 训练集——50个样本 P_train NIR(t…

2023 香山杯 --- Crypto wp

文章目录 题目解题思路解题代码 题目 import os import gmpy2 from Crypto.Util.number import * import random from secrets import flag def pad(s,l):return s os.urandom(l - len(s)) def gen():g getPrime(8)while True:p g * random.getrandbits(138) 1if isPrime(…

E138: Can‘t write viminfo file

E138: Can’t write viminfo file /home/xxx/.viminfo! 原因 进入/home/xxx/目录下,用ls -a你会发现有很多.viminfa.tmp - .viminfz.tmp 这种的临时文件,这是因为使用vim编辑器时,如果编辑器没有正常退出就会生成一个暂存文件,…

车载开发前景广阔,分析市场变化赢未来

车载开发行业在未来具有广阔的前景,主要受益于汽车科技的快速发展和智能出行概念的普及。随着科技的不断进步,车载开发行业将继续受益于创新和需求的推动。车载行业的分布未来也是非常之多,分析现在的车载智能发展,可以得出以下车…