专题网站建设方案,视频直播类网站开发难度,抖音代运营报价明细,深圳百度关键字优化简介
官方定义#xff1a; 什么是热加载#xff1f; 广义上来说#xff0c;热加载是一种允许在不停止或重启应用程序的情况下#xff0c;动态加载或更新特定组件或模块的功能。这种技术常用于开发过程中#xff0c;提高开发效率和用户体验。 在Yakit 的Web Fuzzer中…简介
官方定义 什么是热加载 广义上来说热加载是一种允许在不停止或重启应用程序的情况下动态加载或更新特定组件或模块的功能。这种技术常用于开发过程中提高开发效率和用户体验。 在Yakit 的Web Fuzzer中热加载是一种高级技术让 Yak 成为 Web Fuzzer 和用户自定义代码中的桥梁它允许我们编写一段 Yak 函数在 Web Fuzzer 过程中使用从而实现自定义 fuzztag 或更多功能。 我的理解 热加载类似于面向切面编程就是在渗透的过程中在原本的某个环节上增加一个功能(一段代码)从而增强渗透的能力。可能也比较抽象但是学过Java的同学应该比较好理解。 热加载里面会涉及到Yaklang的编程这里提供一下对应的官方文档地址 https://www.yaklang.com/docs/yak-basic/intro 使用热加载对请求中的密码进行Base64加密
我们直接来看案例通过案例来理解热加载的意义。 这里直接使用pikachu里面的的验证码爆破的History来讲解
对数据包里面的密码进行base64编码我们先看没有热加载的情况
选择对应的标签 接下来使用热加载来实现加密 点击热加载按钮 接下来先解释一下这两个东西插入热加载和热加载函数
调用热加载 fuzztag来插入热加载
实际上我们调用热加载中编写的函数也使用 fuzztag 。我们也可以理解为热加载是一种特殊的 fuzztag 它的格式为
{{yak(funcname)}}当我们需要传入参数时则格式为:
{{yak(funcname|param)}}需要注意的是我们传入的参数可以是 fuzztag 也就是可以编写形如
{{yak(funcname|{{x(pass_top25)}})}}热加载函数定义来提供功能
我们可以在热加载页面中编写热加载函数其函数定义如下
// 函数名为funcname参数只有一个为param类型是字符串
funcname func(param) {// 返回值可以是字符串或数组return param
}我们在热加载页面里面可以随意的去写相关的函数。比如
写函数需要了解yaklang里面的只是。 写完函数怎么使用呢相当简单直接在模版内容里面进行插入编辑器位置即可。
接下来在加入字典作为参数 接下来看看效果
热加载中的魔术方法
在热加载代码区中实际上存在两个特殊的魔术方法beforeRequest和afterRequest它函数的定义如下
// beforeRequest 允许发送数据包前再做一次处理定义为 func(origin []byte) []byte
beforeRequest func(req) { return []byte(req)
}// afterRequest 允许对每一个请求的响应做处理定义为 func(origin []byte) []byte
afterRequest func(rsp) {return []byte(rsp)
}这两个魔术方法分别在每次请求之前和每次请求拿到响应之后调用它们可以用于修改我们 Web Fuzzer 的请求与响应。通过这两个魔术方法配合 Yak代码我们实际上可以实现许多有用的功能。
比如我们这里可以简单演示一个测试功能把请求体里面的macOS替换成windows: 记得点击保存。
这个案例没有什么实际意义只是演示一下beforeRequest功能。 后续会讲解相关的实际用途。 今天就分享到这里后续技巧会持续分享