热爱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 {

最低0.47元/天 解锁文章
1781

被折叠的 条评论
为什么被折叠?



