征文投稿|当Yakit 与 B*** S**te正面对碰!

admin 2023年1月30日18:51:19评论70 views字数 2878阅读9分35秒阅读模式

征文投稿|当Yakit 与 B*** S**te正面对碰!

背景

征文投稿|当Yakit 与 B*** S**te正面对碰!
征文投稿|当Yakit 与 B*** S**te正面对碰!

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


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


征文投稿|当Yakit 与 B*** S**te正面对碰!


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


Proxy模块

BurpSuite

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

所有的流量都会拦下来,包括一些没用的"心跳",如下图,

比如付款的页面,会不断发送数据包进行检测是否付款成功。

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

但是,我们在实际测试中还会有个问题,比如你测试的是a.com,有一个"心跳"为a.com?log=nkebsfks(随机数)。

这个时候如果你选择dismissed整个host,那你测试这个站的流量全部会被放过,如果你选择dismissed这个url,下一个"心跳"仍然会被拦截(因为含有随机数)。

所以又不得不回到这里设置拦截的规则,而且对于不懂正则的人来说,这里可能又会碰上难题。

征文投稿|当Yakit 与 B*** S**te正面对碰!


Proxy取代模块-MITM

Yakit

征文投稿|当Yakit 与 B*** S**te正面对碰!

我们先看过滤模块:

征文投稿|当Yakit 与 B*** S**te正面对碰!

首先这个界面和Burp比起来,很简洁有没有?

而且就操作而言,Yakit也相对方便很多(不需要你点击那么多次),Burp设置一条过滤要点击8、9次,而Yakit只需要2次。

征文投稿|当Yakit 与 B*** S**te正面对碰!

接下来看标记替换规则

征文投稿|当Yakit 与 B*** S**te正面对碰!

新增规则

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

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

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

demo里第一个if是如果请求包含/products/plugins/plugin_11就替换内容后发送;第二个if是如果请求包含/products/plugins/plugin_12直接丢弃,即便你不懂java、python、go…这几行代码也没有压力吧~

如果Yakit自带的规则满足不了你,那就使用热加载,想怎样就怎样!之前提到过a.com?log=sevse(随机数)也可以使用热加载过滤掉。

征文投稿|当Yakit 与 B*** S**te正面对碰!


Repeter模块

BurpSuite

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

征文投稿|当Yakit 与 B*** S**te正面对碰!


Repeter取代模块-Web Fuzzer

Yakit

效果上和Burp是差不多的

征文投稿|当Yakit 与 B*** S**te正面对碰!


Decoder模块

BurpSuite

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

关于中文解码,插件knife可以解决,不过knife默认编码好像不是GBK,需要点点点进行切换…我修改了knife的源码优化了这点。

需要的可以自取 https://github.com/VVeakee/knife

征文投稿|当Yakit 与 B*** S**te正面对碰!


Decoder取代模块-Codec

Yakit

包含编码以及加解密算法

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!


Intruder模块

BurpSuite

对于Intruder模块最重要的无非两点:

1.payload位置

征文投稿|当Yakit 与 B*** S**te正面对碰!

2.payload(字典)

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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


Intruder取代模块-Web Fuzzer

Yakit

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

1.热加载

征文投稿|当Yakit 与 B*** S**te正面对碰!

示例a:转小写

征文投稿|当Yakit 与 B*** S**te正面对碰!

示例b:base编码

征文投稿|当Yakit 与 B*** S**te正面对碰!

保存后直接粘贴payload就可以

征文投稿|当Yakit 与 B*** S**te正面对碰!

这个地方的payload可以说是即用即生成,超级方便!

2.常规写脚本

下图是用字符集abc123!@#生成10个6位的随机字符串

征文投稿|当Yakit 与 B*** S**te正面对碰!

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

征文投稿|当Yakit 与 B*** S**te正面对碰!


Turbo Intruder并发插件

BurpSuite

一般是用来测试并发

征文投稿|当Yakit 与 B*** S**te正面对碰!


并发插件取代模块

Yakit

Yakit的并发集成在Web Fuzzer中

征文投稿|当Yakit 与 B*** S**te正面对碰!


Target模块

BurpSuite

征文投稿|当Yakit 与 B*** S**te正面对碰!


Target取代模块-网站树

Yakit

征文投稿|当Yakit 与 B*** S**te正面对碰!


一些建议

Some Suggestions

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

征文投稿|当Yakit 与 B*** S**te正面对碰!


总结

Conclusion

综上所述,Yakit作为后起之秀,已经把Burp经常用的功能全实现了,并且用起来更加方便快捷。

而且相比于Burp的插件,Yakit的插件更容易开发,还有一点算是大势所趋吧,Yakit的数据会上传到云端,你的个人习惯、使用的工具都会保存在云端(如果字典也可以上云那可就太妙了),可谓是拿来就用,但是Burp的话,换个设备就是又要从0开始了。

感谢@VVeaker师傅的文章投稿,Yakit征文活动长期进行中>>找牛人写牛文!—Yakit有奖征文活动正式启动欢迎各位师傅们多写多投~

征文投稿|当Yakit 与 B*** S**te正面对碰!

往期推荐>>

安全基础设施:用Fuzztag优雅地生成与变形任何Payload

新功能:史上最好用的反连&JavaHack,安全能力基座强化ing

插件分析|Yaklang SQL Injection 检测启发式算法

安全研发启蒙课: 子域名收集联动Yak漏扫插件

征文投稿|当Yakit 与 B*** S**te正面对碰!

原文始发于微信公众号(Yak Project):征文投稿|当Yakit 与 B*** S**te正面对碰!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月30日18:51:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   征文投稿|当Yakit 与 B*** S**te正面对碰!http://cn-sec.com/archives/1388659.html

发表评论

匿名网友 填写信息