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中输入多个文件,具体如下:
相关推荐
Bruce_Liuxiaowei1 小时前
数字签名与“公钥制作者之谜“:信任从何而来
网络·安全·web安全
Black蜡笔小新2 小时前
运维提效!视频汇聚平台EasyCVR视频质量诊断,掉线花屏自动预警
运维·安全·音视频
数据知道3 小时前
哈希与密码存储——bcrypt、Argon2、盐值与彩虹表
网络·算法·安全·网络安全·密码学·哈希算法
sbjdhjd3 小时前
从 assert 动态调用报错到临时文件链路:PHP 5.6 与 7.3 授权靶场中的短 payload 复盘 | (17字符绕过)
安全·网络安全·数据挖掘·开源·云计算·php·字符绕过
sbjdhjd3 小时前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
隐擎fox4 小时前
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
网络·网络协议·tcp/ip·安全·webrtc
字节暗面4 小时前
SO 加固强度自查 Checklist:静态、加载链、运行时看哪几项
安全·逆向
GIS数据转换器4 小时前
遥感GIS一体化技术应用平台
大数据·人工智能·python·安全·数据挖掘
明航咨询-陈老师5 小时前
信息安全服务资质扫盲:CNITSEC 与 CCRC,两套国字号资质的完整对比(技术向)
网络·安全·web安全
乐迪信息6 小时前
航道船舶逆行AI识别,港口安全智能告警系统
大数据·前端·人工智能·安全·计算机视觉·音视频