freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

当Yakit 与 B***S**te正面对碰!
yaklang 2022-11-04 14:47:30 310577
所属地 四川省

众所周知,BurpSuite几乎成为全球WEB安全从业者必用的安全测试工具,然而十余年来尚无一个可替代的解决方案。破解版被投毒风险高、商业版太贵、插件难写、依赖java…等等问题逐渐显露。

与我个人而言,经常会遇到的一种情况就是,有的网站BurpSuite一打开就会被WAF拦掉,这也是我从Burp转到Yakit的契机和原因之一吧。

在经过一段时间的使用与体验后,想着针对两个工具之间的功能性模块,来一个正面对决,1V1分析一番。



BurpSuite-Proxy模块

先看熟悉的Burp抓包,打开抓包



所有的流量都会拦下来,包括一些没用的"心跳",如下图
比如付款的页面,会不断发送数据包进行检测是否付款成功

尽管这里可以设置要拦截的流量,但是设置还是比较麻烦,
比如你要对一个网站进行测试,设置好了过滤的策略,这时候,突然电脑关机了,你打开Burp又要设置一遍过滤的策略。

在还没遇到并使用Yakit之前,我的解决办法是装一个插件 knife,对于没用且频繁发送的数据包dismiss。

它根据url或host可以选择drop或者forward



但是,我们在实际测试中还会有个问题
比如你测试的是http://a.com
有一个"心跳"为a.com?log=nkebsfks(随机数)
这个时候如果你选择dismissed整个host,那你测试这个站的流量全部会被放过,如果你选择dismissed这个url,下一个"心跳"仍然会被拦截(因为含有随机数)。
所以又不得不回到这里设置拦截的规则,而且对于不懂正则的人来说,这里可能又会碰上难题。

Yakit Proxy取代模块MITM


我们先看过滤模块:

首先这个界面和Burp比起来,很简洁有没有?
而且就操作而言,Yakit也相对方便很多(不需要你点击那么多次),Burp设置一条过滤要点击8、9次,而Yakit只需要2次。

接下来看标记和替换规则

新增规则

添加规则后可以在该规则设置对哪些流量生效

然后发送一个请求参数为wifi的数据包看标记效果

我发送的wifi也被替换成了WIFI

Yakit这些流量替换、标记的功能Burp虽然也有,不过相比起来,个人觉得Yakit的实现方式会更加方便使用.

接下来说一下Burp没有的功能—热加载

在Burp中如果你想自定义处理经过代理的流量,就需要自己开发插件,在懂java的基础上学个一两天差不多就可以开发插件了。

当然插件也可以用Python开发,不过需要下载Jython,麻烦事也挺多的…
而对于Yakit,自定义处理流量就很简单了。

demo里第一个if是如果请求包含/products/plugins/plugin_11就替换内容后发送;
第二个if是如果请求包含/products/plugins/plugin_12直接丢弃;
即便你不懂java、python、go…这几行代码也没有压力吧
如果Yakit自带的规则满足不了你,那就使用热加载,想怎样就怎样!
之前提到过a.com?log=sevse(随机数)也可以使用热加载过滤掉。

BurpSuite-Repeter模块

这个相信大家都已经很熟悉了。

Yakit Repeter取代模块Web Fuzzer

效果上和Burp是差不多的

Burpsuite Decoder模块

说实话这个模块我基本上没有用过,因为它不支持中文解码。
还有一点就是有点麻烦,你需要找Decoder模块,在插件多的情况下,一眼看不到Decoder模块。

关于中文解码,插件knife可以解决,
不过knife默认编码好像不是GBK,需要点点点进行切换…我修改了knife的源码优化了这点,需要的可以自取https://github.com/VVeakee/knife

Yakit Decoder取代模块Codec

包含编码以及加解密算法

此外,Codec不单单是个模块,在代码中是有这个全局变量的,后面会在热加载中用来生成自定义的payload

当然,最方便的用法还是右键即可,这个不需要解释吧,Yakit yyds!

BurpSuite Intruder模块

对于Intruder模块最重要的无非两点
1.payload位置

2.payload(字典)

在以往的使用经验中,大概率是要你先生成payload然后load
比如你需要6位随机字符,很遗憾,Burp里并没有适合的生成该payload的type

你可能会用python写一段代码或者crunch生成payload
有时候甚至会想,偌大的Burp就没有一个好用的插件可以自动生成payload吗?

Yakit Intruder取代模块

下面是自带的生成payload的规则

如果不存在符合你需要的payload可以直接用代码生成,
如下,生成6位数字爆破手机验证码的payload为{{int(0-100000|6)}}



除了代码生成的payload也可以使用定义好的payload

把你定义好的payload上传云端,调用就是{{x(字典名)}}
比如我要使用user_top10这个字典

如果插入两个位置就是对应Burp里的Cluster bomb模式,请求总数为payload1的个数 乘 payload2的个数。



如果仍然没有你想要的payload也没关系,咱们可以自己直接造。
这里有两种方式造payload,强烈推荐第一种!
1.热加载


示例1:转小写



示例2:base编码

保存后直接粘贴payload就可以

这个地方的payload可以说是即用即生成,超级方便!
2.常规写脚本
下图是用字符集abc123!@#生成10个6位的随机字符串

然后在payload管理里面专门生成一个字典temp放临时字典

BurpSuite turbo intruder 并发插件

一般是用来测试并发

Yakit并发取代模块

Yakit的并发集成在Web Fuzzer中

BurpSuite target模块

Yakit target取代模块 网站树

一点点建议

在网站树状图的地方,大概是我喜欢一眼能看到数据包的布局吧,如下图:

总结

综上所述,Yakit作为后起之秀,已经把Burp经常用的功能全实现了,并且用起来更加方便快捷。
而且相比于Burp的插件,Yakit的插件更容易开发,还有一点算是大势所趋吧,Yakit的数据会上传到云端,你的个人习惯、使用的工具都会保存在云端(如果字典也可以上云那可就太妙了),可谓是拿来就用,但是Burp的话,换个设备就是又要从0开始了。

# 渗透测试 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 yaklang 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
yaklang LV.8
做难而正确的事!
  • 153 文章数
  • 106 关注者
独立SyntaxFlow功能?IRify,启动!
2025-03-31
那我问你,MCP是什么?回答我!
2025-03-24
SyntaxFlow实战CVE漏洞?那很好了
2025-03-14
文章目录