Yakit技能联动:codec & WebFuzzer

热爱Yakit的家人们,对WebFuzzer肯定不陌生。

它,

实现了对Repeater和Intruder的完美整合

能够免配置进行批量发包模糊测试

......

是一个非常多面的工具

Yakit平台的最核心的组件,之一

这么熟悉的一个老大哥了,怎么还拿出来讲啊??

当然是因为团队一直在“做难而正确的事”呀!

具有工匠精神,不断打磨Yakit,希望给用户的使用过程带来意想不到的效果。

所以,我们把codec插件联动上WebFuzzer这位魅力老大哥了。

codec插件是YAK的一个插件类型,在之前的文章中常常作为单独的小脚本被介绍,或者在Yakit codec模块中作为编码流的一个步骤使用。

如何使用联动技能?在不同场景进行触发

触发前准备:

codec联动Web Fuzzer十分简单,只需要在新建codec插件的时候配置好选项即可。在新建插件中选择codec插件,如下图所示。

可见一共有两种方式的插件配置

  • 用于自定义的HTTP数据包变形

此配置常用于需要对HTTP数据包进行修改,会将codec插件的执行结果覆盖到数据包框的内容,比如说常见的数据包参数格式转化。

  • 用于自定义右键菜单执行

此配置常用于提取HTTP数据包的部分数据,会将codec插件的执行结果在单独的弹出框里展示,比如提取数据包里的敏感信息。

这种两种联动在Web Fuzzer中如下所示

将需要的选项勾选上即可在对应的菜单里调用codec插件。

场景一:自定义的HTTP数据包变形

关卡1:转化POST参数功能

JavaScript
handle = func(origin /*string*/) {
   // 转换为普通post参数

    _, v = poc.Split(origin)
    v = string(v)

    MapObjToPostParams = func(mapObj, oldKey) {
        postResult = ""
        for k, v in mapObj {
            if oldKey {
                k = sprintf("%s[%s]", oldKey, k)
            }
            if typeof(v) != map[string]var {
                postResult += sprintf("%s=%v&", k, v)
            } else {
                postResult += MapObjToPostParams(v, k)
            }
        }
        return postResult
    }

    // 先尝试json
    mapObj = json.loads(v)
    if len(mapObj) == 0 {
        // 再尝试xml
        mapObj = xml.loads(v)
        dump(mapObj)
    }

    if len(mapObj) > 0 {
       
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值