GPT都解决不了的Burp无用流量过滤问题

admin 2023年3月24日09:45:55评论94 views字数 4669阅读15分33秒阅读模式
GPT都解决不了的Burp无用流量过滤问题



目录

0x01 老王的问题

0x02 一本正经胡说八道的ChatGPT

0x03 自动删除流量包的解决思路

0x04 基于Exclude Scope的解决思路

0x05 实现Exclude Scope API的BUG

0x06 通过操作项目配置文件的API实现

0x07 操作项目配置文件的API扩展

0x08 总结


△△△点击上方“蓝字”关注我们了解更多精彩




0x00 前言

前段时间团队的数据安全工程师(老六)写了他利用ChatGPT打破数据安全壁垒的故事。 

打破技术壁垒!数据安全运营与ChatGPT联动的初探

我才算是看明白了,普通的数据分析工程师基本上就是把ChatGPT当成一个会自我总结的搜索引擎使用的。当然,也有高级的程序员会用ChatGPT来实现自动代码审计分析,真的厉害。



0x01 老王的问题

恰逢其会,老王(化名)问我有没有办法解决在Burp上存在很多和测试无关的流量的问题

开始没理解这个需求的作用,因为Chrome和Firefox浏览器下我平常都是通过Proxy SwitchyOmega等转发先做的一次域名过滤。

GPT都解决不了的Burp无用流量过滤问题


FelisCatus/SwitchyOmega: https://github.com/FelisCatus/SwitchyOmega


随着过滤规则的增多,平常测试的时候已经很少能遇到影响测试的流量。


但是也有被忘记的情景,SwitchyOmega插件只适合PC上使用。


如果遇到了APP渗透等非浏览器访问的场景下抓包的需求,就没有办法了


想起来以前也确实遇到过这个问题但是没有成功找到好的解决方案,最后才使用的浏览器插件方案。


最终决定基于强大的ChatGPT找找解决方案。




0x02 一本正经胡说八道的ChatGPT

开始是想看看有没有办法,阻断某个域名的流量,并且不显示在历史流量窗口。
GPT都解决不了的Burp无用流量过滤问题

意思是拦截客户端请求设置里有个Drop选项

GPT都解决不了的Burp无用流量过滤问题



发现实际上规则匹配中并没有这个Drop功能。

GPT都解决不了的Burp无用流量过滤问题


再问,ChatGPT说可以先把要抓的域名加入Scope,再在拦截页面通过手动Drop报文,这个时候就不会在历史流量模块记录。

这个回答比较鸡肋,手动删除每一个报文,哪里还有时间测试。

GPT都解决不了的Burp无用流量过滤问题

而且,实际测试发现删除的包也会存在于历史流量中。


后面再询问ChatGPT就发现它的CPU烧坏了,开始忽悠我了。


GPT都解决不了的Burp无用流量过滤问题



GPT都解决不了的Burp无用流量过滤问题



再查了查Burp的API,想看看有没有API操控这个流量记录,结果是没有找到操控流量记录的API


兜兜转转发现确实没有办法直接解决 通过Burp的流量不在Burp历史流量记录中显示的问题。 


流量来过了就是来过了,Burp可以无情,但是确实没有办法无痕。




0x03 自动删除流量包的解决思路

退而取其次,说他的主要目的就是能够 在测试过程中不看到这个流量记录,只要测试时看不到可以就当他没进来过。


所以就开始寻找 如何在流量历史隐藏无用流量 的方案。


历史模块中可以通过很多方案来过滤报文,但是大多都是针对性的过滤(如后缀、类型、状态码等),没有办法直接区分有用和无用域名的流量,不太通用。


看到其中有个隐藏无用响应的功能如果结合能自动删除指定域名的报文的插件,并且设置不显示无响应浏览,就能够实现无用域名流量的过滤

GPT都解决不了的Burp无用流量过滤问题



GPT都解决不了的Burp无用流量过滤问题


刚好前段时间发文描述的Knife插件中有个dissmissed功能,可以自动删除指定域名的报文,结合起来刚好解决了这个问题。

bit4woo/knife: https://github.com/bit4woo/knife

Dismissed -> Drop Host:自动drop后续来自当前Host的流量,不发送请求。可以配合History上方的过滤器"Hide items without responses" 使其不显示在History中




0x04 基于Exclude Scope的解决思路

推荐给老王这个Drop方案以后,我觉得此事已经结束。但老王又提了一个BUG: 

Drop以后我访问不了百度了,我要访问下百度,但是还不想看到百度的流量。


这就是Drop解决不了的问题了,又开始寻找新的解决方案。


GPT都解决不了的Burp无用流量过滤问题


想到这个Show In-Scope这个从接触Burp至今都没怎么设置过的功能。 


以前感觉这个功能很鸡肋,不能包含或者排除自己想排除的host,只能针对某一个URL来操作。


GPT都解决不了的Burp无用流量过滤问题


Burp右键自带的的add to scope也是基于URL的快捷操作,实际测试感觉没什么用处。


GPT都解决不了的Burp无用流量过滤问题

渗透测试时的操作都是基于域名来的划分范围的,只操作URL没有任何意义。


打开Target ->Scope设置,发现当前版本(2022.8.5)支持通过正则表达式来配置Include in Scope和Exclude from Scope。


GPT都解决不了的Burp无用流量过滤问题

不知道是什么时候出来的功能,但是测试发现 能通过高级Scope配置来实现排除指定域名的功能。


排除指定域名示例,如.*.baidu.com:

配置Include in Scope 为 [.*]配置Exclude from Scope [.*.baidu.com]


GPT都解决不了的Burp无用流量过滤问题

添加Scope规则

GPT都解决不了的Burp无用流量过滤问题

Show In Scope过滤前

GPT都解决不了的Burp无用流量过滤问题

Show In Scope过滤后

测试发现成功排除了baidu.com的所有流量,并且其他流量都在Scope范围内,也不影响主动扫描Scope等操作。


但是高级Scope设置操作过程都是手动的,如果能够通过右键实现是最好的。


打开Knife插件,发现它右键有个[Add Host To Scope]功能,能将当前选中的所有请求的HOST都加入到Include Scope当中。

GPT都解决不了的Burp无用流量过滤问题


研究发现是使用Burp的includeInScope API来实现的:

GPT都解决不了的Burp无用流量过滤问题

knife add host to scope源码


通过处理URL为 URL格式(根目录),来实现包含某个主机的域名范围。

GPT都解决不了的Burp无用流量过滤问题

knife add host to scope效果


另外发现Burp还有个excludeFromScope API,同理可以实现将主机的短URL除掉。


GPT都解决不了的Burp无用流量过滤问题


通过拷贝代码逻辑,成功在knife中添加了一个右键功能[Add Host To ExScope] 将域名添加到排除范围。

(不得不说,Knife在扩展性这块很友好)


GPT都解决不了的Burp无用流量过滤问题




0x05 实现Exclude Scope API的BUG


测试发现这块还是有较大的瑕疵


如果只添加了排除Scope,默认不会设置设置包含Scope为 [.*]号:

GPT都解决不了的Burp无用流量过滤问题


注:这里因为操作前手动开启高级模式,所以显示的是正则,默认普通模式是显示过滤前缀.


实际使用InScope过滤时会发现一个流量也不显示:

GPT都解决不了的Burp无用流量过滤问题


因此,需要在发现InScope为空时,添加[.*]到包含Scope,但是发现没有判断Scope为空的API,并且API不能够添加 [.*] 域名


只有一个判断URL是否在Scope内的函数[isInScope],而且也只能基于URL操作,不能操作[.*]和[http://.*]。


GPT都解决不了的Burp无用流量过滤问题


尝试在添加完排除范围后在自动设置一个[.*]到Scope,发现URL这里就不可行。


GPT都解决不了的Burp无用流量过滤问题


GPT都解决不了的Burp无用流量过滤问题


GPT都解决不了的Burp无用流量过滤问题


需要通过其他的方案来实现 域名[.*]




0x06 通过操作项目配置文件的API实现


查找了很久的API发现两个比较有用的API:

String saveConfigAsJson(String... configPaths);获取当前项目配置文件的Json格式

void loadConfigFromJson(String config);将Json格式的配置文件导入到当前Burp项目结构中。

另外发现Scope设置也在项目配置中并且配置是实时生效的

GPT都解决不了的Burp无用流量过滤问题


因此考虑,通过Json操作库来实时修改Json配置并加载间接实现[.*]通配符域名的添加。

GPT都解决不了的Burp无用流量过滤问题


GPT都解决不了的Burp无用流量过滤问题

成功实现[.*]通配符域名的添加


后续,同样通过修改配置文件的操作,扩展实现添加域名正则的右键操作:
【Add Host To ExScope Adv】和【Add Host To InScope Adv】

如[www.baidu.com]会添加正则[www.baidu.com]

GPT都解决不了的Burp无用流量过滤问题



这是基于前缀的功能的【Add Host To ExScope】和【Add Host To InScope】进一步优化。



然后应老王的再次要求,对【Add Host To ExScope Adv】和【Add Host To InScope Adv】功能再次进行了扩展。
GPT都解决不了的Burp无用流量过滤问题

当开启Scope_Set_Base_OnWildcard_SubDomian为True时,会基于主域名的正则格式操作(把最前面的一级替换为.*)

此时添加Host[www.baidu.com],实际会添加正则[.*.baidu.com]



0x07 操作项目配置文件的API扩展


最后,通过对配置文件的实时操作,实现了更多的功能:

GPT都解决不了的Burp无用流量过滤问题

GPT都解决不了的Burp无用流量过滤问题

Project Scope Clear 清空当前的In-Scope和Ex-Scope范围

Project Config Save 保存当前的配置文件到指定文件。

Project Config Load 加载指定配置文件加载到当前项目。

注:Config保存加载都需要先设置Auto_Load_Project_Config为True.

GPT都解决不了的Burp无用流量过滤问题

另外还添加了[启动时自动加载项目配置文件][默认排除域名正则]等功能.


Auto_Load_Project_Config 会在插件启动时自动从项目配置文件中导入项目配置,这是比较通用的需求

如:修改enable_http2为false,让高版本burp不默认使用HTTP2协议。

GPT都解决不了的Burp无用流量过滤问题


(可项目内修改后Project Save Config,也可以直接在配置文件修改后Project Load Config)





0x08 总结

本来觉得就一点点功能,应该不是很费事,但是发现写了很久才解决这个问题,不过能实现算是解决一个盲点。

感谢knife的开源

其他更多的Adv配置文件操作可以查看项目更新地址。
winezer0/knife-plus: burpsuite knife插件维护分支(用于搜索,下载release)https://github.com/winezer0/knife-plus
winezer0/knife_PullRequests: burpsuite knife插件PR分支(用于提交本分支的更新记录)https://github.com/winezer0/knife_PullRequests

整个实现过程中还是使用了GPT的,它帮我找到了使用Gson操作Json字符串的代码。




0x9 免责声明


在学习本文技术或工具使用前,请您务必审慎阅读、充分理解各条款内容。


1、本团队分享的任何类型技术、工具文章等文章仅面向合法授权的企业安全建设行为与个人学习行为,严禁任何组织或个人使用本团队技术或工具进行非法活动。


2、在使用本文相关工具及技术进行测试时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。如您仅需要测试技术或工具的可行性,建议请自行搭建靶机环境,请勿对非授权目标进行扫描。


3、如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。


4、本团队目前未发起任何对外公开培训项目和其他对外收费项目,严禁任何组织或个人使用本团队名义进行非法盈利。


5、本团队所有分享工具及技术文章,严禁不经过授权的公开分享。


如果发现上述禁止行为,我们将保留追究您法律责任的权利,并由您自身承担由禁止行为造成的任何后果。



END



如您有任何投稿、问题、建议、需求、合作、后台留言NOVASEC公众号!

GPT都解决不了的Burp无用流量过滤问题

或添加NOVASEC-余生 以便于及时回复。

GPT都解决不了的Burp无用流量过滤问题


感谢大哥们的对NOVASEC的支持点赞和关注

加入我们与萌新一起成长吧!


本团队任何技术及文件仅用于学习分享,请勿用于任何违法活动,感谢大家的支持!



原文始发于微信公众号(NOVASEC):GPT都解决不了的Burp无用流量过滤问题

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月24日09:45:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   GPT都解决不了的Burp无用流量过滤问题https://cn-sec.com/archives/1623459.html

发表评论

匿名网友 填写信息