Burp Suite-使用本地文件作为响应内容

Burp Suite-使用本地文件作为响应内容

很多抓包文件都有使用本地文件作为响应内容的功能,如fiddler的AutoResponser,而Buip Suite却没有,这个功能对在开发js的逆向的时候,有很大的用处,很多js都是有压缩与混淆的,很难直接在浏览器中阅读,如果做了修改又很难进行保存,所以,有此功能,我们就可以在我们熟悉的idea工具中进行阅读与开发,每次修改完,马上还能验证效果,逆向的效率直线提升。

burp suite原生没有带换个功能,但是有这个功能的插件:http mock,下面我们就来介绍这个http mock。

安装

在buip suitede的BApp市场,Extender->BApp Store->输入http mock进行搜索,然后点击下面的install,既开始安装

BApp插件安装的目录一般都在下面部分:

C:\Users\系统用户\AppData\Roaming\BurpSuite\bapps

在Extensions的Details页面下,既能看到对应的jar包

使用

代开设置了burp suite代理的浏览器,并访问你们逆向的地址,在proxy->HTTP history页面下,会有对应的访问历史,选择你的地址,并选择Mock HTTP response(URL wihtout query),然后就可以进入到http mock的修改respone页面

这边主要介绍两个选项Basic与File Contents

  • Basic:直接在Response Editor中修改返回的内容,并保存后,刷新页面返回的内容即使我们修改后的内容,简单的逆向绕过使用这个方法即可,如果是很复杂的功能,在response editor中修改肯定没有我们的idea中方便,在idea中修改完又要复制过来,操作步骤就很繁琐了;

  • File Contents:支持外部的文件作为response返回,在使用中,需要把response editor的内容清空,然后在导入对应的文件,切记,response ediotr仅保存一个文件的路径;

功能扩展

由于response回来的内容有响应头与js文件,如果都在以为文件里面在idea中会报错的,所以我们需要吧响应的内容分成两个文件,一个是响应头,一个是js文件,但是http-mock插件并不支持,所以,只能我们自己扩展了。

  • 首先我们需要下载对应的源码

插件的官网

github.com/PortSwigger...,如果要下面对应的代码执行下面的代码,下载的比较快

bash 复制代码
git clone https://github.moeyy.xyz/https://github.com/PortSwigger/http-mock.git
  • 另外我们需要熟悉java的开发环境,这边主要使用maven进行打包管理

  • 修改代码内容,主要修改的类net.logicaltrust.model.MockEntryTypeEnum

    ini 复制代码
            @Override
            public byte[] generateResponse(byte[] entryInput, byte[] incomingRequest, IHttpService incomingHttpService) {
                IExtensionHelpers helpers = BurpExtender.getCallbacks().getHelpers();
                String inputStr = helpers.bytesToString(entryInput);
                //如果是多行
                String[] split = inputStr.split("\n");
                BurpExtender.getLogger().debugForce("line num:" + split.length);
                return mergeFilesToByteArray(split);
            }
    ​
            public byte[] mergeFilesToByteArray(String[] filePaths) {
                List<byte[]> filesContent = new ArrayList<>();
                for (String filePath : filePaths) {
                    try {
                        if(filePath!=null&&!filePath.isEmpty()){
                            filePath = filePath.trim();
                            BurpExtender.getLogger().debugForce("filePath:" + filePath);
                            Matcher matcher = quoteParser.matcher(filePath);
                            if (matcher.matches()) {
                                String path = matcher.group(2);
                                BurpExtender.getLogger().debugForce("path:" + path);
                                filesContent.add(Files.readAllBytes(Paths.get(path)));
                            }
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                        // 处理异常,例如返回null或抛出新的异常
                        return null; // 或者抛出异常,例如 throw new RuntimeException("Error reading file: " + filePath, e);
                    }
                }
    ​
                // 合并所有字节数组
                int totalLength = 0;
                for (byte[] bytes : filesContent) {
                    totalLength += bytes.length;
                }
    ​
                byte[] mergedArray = new byte[totalLength];
                int currentIndex = 0;
                for (byte[] bytes : filesContent) {
                    System.arraycopy(bytes, 0, mergedArray, currentIndex, bytes.length);
                    currentIndex += bytes.length;
                }
    ​
                return mergedArray;
            }
  • 修改完后,使用maven进行打包:

    复制代码
    mvn clean install -f pom.xml
  • 打包的路径下,BurpHttpMock-1.1.7-jar-with-dependencies.jar就是我们需要替换的文件
  • 在安装章节中有描述插件的具体路径,我们把他替换掉

  • 加载我们的包,到Extender->Exentions页面,去掉Extension loader即卸载,然后再打上勾,重新加载,即使用上我们的jar包了

  • 然后可以在response editor中输入多个文件,具体如下:
相关推荐
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher4 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行7 天前
网络安全总结
安全·web安全
red1giant_star7 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透7 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全