Yakit工具篇:WebFuzzer模块之热加载技术

简介

官方定义:
什么是热加载?
广义上来说,热加载是一种允许在不停止或重启应用程序的情况下,动态加载或更新特定组件或模块的功能。这种技术常用于开发过程中,提高开发效率和用户体验。
在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功能。
后续会讲解相关的实际用途。
今天就分享到这里,后续技巧会持续分享!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/188282.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#调用ffmpeg从视频提取图片

微信公众号“CSharp编程大全”的文章《C#从视频提取图片?》介绍了基于Microsoft.DirectX.AudioVideoPlayback.Video类实现从视频提取图片的方式,本来是想学习并测试该类的用法,但实际测试过程中却没有测通。百度从视频提取图片,网…

Kotlin学习——kt里面的函数,高阶函数 函数式编程 扩展函数和属性

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

如何使用Python在3dMax控制网格对象?

我们以一个在3dMax中使用Python脚本在网格对象对象上创建水波变形作为例子。 首先,在3dmax创建两个对象,一个“box”对象,将长宽方向的分段设置的多一些(目的是为了后面的水波变形),一个“点”帮助对象&am…

P13 C++ 类 | 结构体内部的静态static

目录 01 前言 02 类内部创建静态变量的例子 03 在类的内部创建静态变量的作用 04 最后的话 01 前言 本期我们讨论 static 在一个类或一个结构体中的具体情况。 在几乎所有面向对象的语言中,静态在一个类中意味着特定的东西。这意味着在类的所有实例中&#xff…

AI换脸教程

方法一、MJ换脸大法 1.点击这个网站添加一个机器人到自己的服务器 https://discord.com/oauth2/authorize?client_id1090660574196674713&permissions274877945856&scopebot 2. /saveid 回车选择你自己的照片,并且在名字框命名身份,回车 3.…

Linux关于定时任务crontab相关知识了解配合理解shell反弹远程控制

Linux关于定时任务crontab相关知识了解配合理解shell反弹远程控制 几点需要知道的信息 【1】crontab一般来说服务器都是有的,依赖crond服务,这个服务也是必须安装的服务,并且也是开机自启动的服务,也就是说,他基本上是…

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、…

Rust UI开发(一):使用iced构建UI时,如何在界面显示中文字符

注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 iced的基本逻辑是: UI交互产生消息message,message传递给后台的update,在这个函数中编写逻辑,然后通过…

python安装redis库

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

#BUG SHOW# 深挖一个6年前的老“bug”

引言 最近参与了一个业务迁移的项目,需要把站点A迁移到站点B。不同的站点拥有各自独立的服务和数据库,可以说是毫无关联。为了兼容迁移过程中的存在的一部分特殊交易数据(正向[支付]交易在站点A,但逆向[退款]操作在站点B操作&…

使用new Vue()的时候发生了什么?

前言 Vue.js是一个流行的JavaScript前端框架,用于构建单页面应用(SPA)和用户界面。当我们使用new Vue()来创建一个Vue实例时,Vue会执行一系列的初始化过程,将数据变成响应式,编译模板,挂载实例…

基于WSL2+Docker+VScode搭建机器学习(深度学习)开发环境

基于WSL2DockerVScode搭建机器学习(深度学习)开发环境 内容概述:由于最近配发了新的工作电脑但不想装双系统,因此通过本博文来记录基于Windows子系统WSLDocker搭建机器学习与深度学习开发环境的流程步骤,同时记录该过程中所遇到的相关问题及解…

FFmpeg命令分隔视频

有一个视频如a.mp4,此视频采用帧率为30生成,共有299帧,这里通过FFmpeg命令分隔成1秒一个个的小视频,即每个小视频帧数为30帧。 用到的FFmpeg参数如下所示: (1).-i:指定输入视频文件的名称; (2).-c:指…

Guitar Pro软件8.0官方最新版本下载

Guitar Pro 8是一款由法国Arobas Music公司开发的吉他学习与MIDI音序制作辅助软件,它具有丰富的功能,包括吉他谱、六线谱、四线谱绘制、打印、查看、试听等方面,能够帮助音乐爱好者更方便地进行音乐学习和创作。Guitar Pro 8拥有独特的gtp格式…

Jmeter对图片验证码的处理

​对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入,而且每次登录时图片验证码都是随机的;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段,然后再登录接口中使用; 通过jmeter对图片验证码的识…

【手写实现一个简单版的Dubbo,深刻理解RPC框架的底层实现原理】

手写实现一个简单版的Dubbo,深刻理解RPC框架的底层实现原理 RPC框架简介了解Dubbo的实现原理服务暴露服务引入服务调用 手写实现一个简单版的Dubbo服务暴露ServiceBeanProxyFactory#getInvokerProtocol#exportRegistryProtocol#export 服务引入RegistryProto#referD…

开源称重系统-有源代码

最近发现网上有个不错的开源称重软件,界面做的非常漂亮,收藏一下;还有硬件对接:耀华A9仪表、海康威视监控,IC卡读卡器,控制器对接都有,是个不错的软件,非常感谢作者分享;…

Jenkins 插件下载速度慢安装失败?这篇文章可能解决你头等难题!

Jenkins部署完毕,如果不安装插件的话,那它就是一个光杆司令,啥事也做不了! 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI/CD必要插件。 但是问题来了,jenkins下载插件速度非常慢&#xff0c…

使用bard分析视频内容

11月21日的bard update 更新了分析视频的功能,使用方法如下: 1、打开bard网站。https://bard.google.com/ 2、点击插件。 3、点击YouTube中的 research a topic 选项。 4、输入需要分析的内容: Please analyze how many technologies are in…

Compose入门

​ 本篇文章主要是为了对Compose有一个初步了解。知道Compose是做什么的,用Compose能干什么,在目前的各种UI框架下面有些优势,参考Google官网的解释加上一些自己的理解生成的一篇文章。本人也是Compose初学者,通过每一步学习遇到哪…