当Yakit 与 B***S**te正面对碰

当Yakit 与 B***S**te正面对碰

众所周知,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开始了。

Yak官方资源

Yak 语言官方教程:
https://yaklang.com/docs/intro/
Yakit 视频教程:
https://space.bilibili.com/437503777
Github下载地址:
https://github.com/yaklang/yakit
Yakit官网下载地址:
https://yaklang.com/
Yakit安装文档:
https://yaklang.com/products/download_and_install
Yakit使用文档:
https://yaklang.com/products/intro/
常见问题速查:
https://yaklang.com/products/FAQ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值