#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit插件使用及编写01
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。
目录
插件系统技术概述
技术选型
“嵌入式”是最终方案
Yakit 的插件是如何运作的?
插件商店介绍和使用
插件下载
插件编写与使用
常见插件类型
原理分类:独立模块与嵌入模块
典型应用分类
Yak 原生模块
MITM 原生模块
插件系统技术概述
技术选型
当安全工具在自称“平台”的时候,插件的编写难度,价值,以及自由度其实是限制工具成为真正“平台”的原因。很久以来,我们一直在探索“插件”模式的最终发展。
在 Python 的时代,其实“插件”也并不是那么棘手的事情。如果不在乎安全性和代码保密性,eval 虽然丑陋,但是好用。
但是当大家的产品变得工程化之后,Golang 这种“静态”特性让插件变得不是那么“自然”,大家可以通过 DLL / .so 来执行插件,但是 “并不是谁都可以写 Golang DLL/.so 的” 不是吗?于是在客户端层面,大家有努力的去想了别的办法,比如 npm 包的格式来封装插件,让他在客户端 “动态” 起来,但是依赖管理仍然是一个比较难过的关。
往往很多时候,我们遇到的这种困难其实换个领域,换个角度已经有了很棒的方案:譬如 Java 中的各种嵌入式脚本语言,经常被用来做“查询”的插件和简单逻辑。既然可以嵌入一些数据库与 IO 的能力,如果嵌入式语言可以使用的话,当然也可以嵌入 “扫描” 能力了。
“嵌入式”是最终方案当大家有了这个想法之后,我们就发现“嵌入式的语言”作为插件的实现,其实强度和表现力都是远大于 Yaml / Json 这类数据描述语言:表现力层面:图灵完备 > 数据容器(描述)语言。这是毋庸置疑的。
同时,如果为这个图灵完备语言增加和插件平台的各种交互,他理所应当成为一个非常合理的插件系统的。
这件事情是最合适 Yak 来做的,我们的引擎已经可以做到 “零依赖”,“嵌入执行”,“自动代码补全”。难道成为 Yakit 的插件系统核心是一件难事儿吗?当选定了这一条我们认为正确的路线之后,其实后面很多事情就变成了 “加油干” 就能解决的了。
Yakit 的插件是如何运作的?
我们需要固化用户输入的 Schema:当我们把用户输入的参数预先设定好之后,就可以生成用户需要填写的表单了,这其实非常方便,并不需要插件编写者真的去编写“前端”,不需要用户编写界面可以降低很多成本
当我们使用配置好的参数 + Yak脚本的时候,我们就可以把这两个东西保存到 Yak 核心引擎中,作为一个插件的持久化。
所以只要能拿到插件的持久化 ID,我们就可以获取到插件的全部信息,只要填了相对应的参数,我们就可以做到在 Yak 引擎中执行了。
插件商店介绍和使用
Yakit的插件仓库提供了拓展插件的功能,方便使用者编写自己的自定义插件或从插件商店中选择适合的插件。
插件可以以多种方式支持自定义的行为,例如:特定漏洞检测的POC/EXP,自定义UI,添加自定义扫描程序检查以及访问关键运行时信息等等。
yakit的插件具有以下特点:
yakit插件特点
灵活多变
Yaklang 的 “零依赖”,“嵌入执行”,“自动代码补全”等特点,为Yakit的插件系统提供了优秀的可扩展能力与可实践特性。Yakit的插件系统实质上是将编写的Yak脚本发送到Yak引擎,引擎将会启动一个进程来执行,执行过程的输出将会通过 gRPC 的双向数据流返回。这就意味着,用户可以根据自己的需要在平台编写各种符合自己实际使用场景的插件。
自带UI与绘图API
Yakit提供了一整套插件的使用页面,无需用户思考如何编写“前端”。只需将参数预设好并写好Yak脚本,将参数与脚本保存在引擎中,填写相对应的参数,就可以做到在Yak引擎中执行。Yakit除了有提供配套的插件UI外,也提供了超强的绘图能力,只需要调用 Yakit 的绘图 API仓库,直接执行,即可在插件输出中看到绘制的图表,用户无需消耗精力去制作图表。
插件联动
插件的灵活性也与Yakit本身的功能进行了结合,比如可以在使用MITM劫持、端口扫描的过程中去灵活使用插件,达到漏洞扫描、敏感信息检查等等各种各样的能力。且插件与插件间也可进行联动,只需在编写插件时启用联动UI,则在使用该插件时,也可使用其他的插件,达到多重使用的目的。
插件下载
一键下载
也可以编辑他人插件进行修改
插件编写与使用
插件概述:定义与基础类型
Yakit 插件是与 Yak 语言深度绑定的一套体系。理论上来说,任意一段 Yak 代码均可以被封装成一个 Yakit 模块,分发给用户使用。
插件系统本质插件系统的核心流程一般来说都是 yak 引擎通过 '热加载' 或者 '封装注入依赖' 等手段来执行一段 yak 代码,让代码中的行为与引擎与数据库发生交互。
常见插件类型
yaklang.io 中定义 Yakit 的插件类型目前分为三种
以 Webhook 为通信媒介的原生 Yak 模块,通过核心引擎启动新的 yak 执行进程来控制执行过程;
以 MITM 劫持过程为基础 Hook 点的 Yak 模块,
以 Yaml 为媒介封装 Nuclei PoC 的模块,本质上也是执行一段 Yak 代码,原理与(1)相同,本文将不再赘述。
原理分类:独立模块与嵌入模块
独立模块
独立模块的核心是一段 Yak 脚本,一般来说使用 Webhook 与 Database 为通信媒介,通过控制进程的生命周期来控制执行任务的生命周期。
一般独立模块用于提供相对独立的整体功能。
独立模块启动进程目的防止和引擎核心进程发生不期望的交互导致内存泄露
不期望的崩溃影响到主进程嵌入式模块
嵌入式模块的核心原理是把一段 Yak 代码发送到引擎,加载到内存,在一个特定的主功能执行的过程中,在特定的情况下执行用户 "热加载" 的代码。
MITM 插件就是一个典型的 "热加载" 模块,可以在 "任何新请求到来时执行用户代码 / 新网站被发现时执行用户代码 / 新参数发现时执行代码 ..."。
嵌入式模块与主核心通信直接通过内存进行通信,通信速度相对更快。
注意但是根据我们上面的说法,这种情况可能会有内存泄漏的风险。所以我们需要编写嵌入式模块时进行充分测试,确保可用性。
典型应用分类
Yak 原生模块
我们使用 Yak 原生模块是最容易理解的模块,我们对 "概论" 中的图进行一部分修改,即可得到核心原理。

MITM 原生模块
MITM 是 "热加载" 插件的典型模块,我们使用这个模块的过程中,将会对 MITM 的过程进行插桩,在恰当的点触发恰当的函数。
我们使用一个时序图来向大家展示 MITM 模块的调用 / 执行过程

当我们理解 MITM 插件的运作流程之后,发现他其实是一个非常非常典型的被动扫描器的模型架构。
MITM 平台劫持了用户流量,同时可以把用户流量作为参数,执行用户自定义的流量处理和分析函数。
相关文章:
#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit插件使用及编写01
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
Scala中求斐波那契数列的第n项
求斐波那契数列的第n项 问题:求 斐波那契数列的第n项 记: 0 1 1 2 3 5 8 13 21 34 55 ... 从第3项开始 f(n) f(n-1) f(n-2) 1.基本情况(直接能求的):f(0) 0,f(1) 1 2.递归情况(大事化小,自己…...
ORACLE修改序列值为表内某字段(主键)最大值
ORACLE修改序列值为表内某字段(主键)最大值 想修改序列值,网上基本的都是自己看要加到多少,然后要么调步长,要么删了重建。 想直接用declare使用标量然后调,但是逻辑里面不能有DDL语句。 不过最后解决了 直…...
前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换
目录 示例: 准备: ?编辑 开始: 1、新建页面,在script标签中引入百度地图的api数据,把自己在控制台创建的应用的ak替换上去 2、创建一个dom对象,设置宽高 3、在js中初始化地图 进阶: 1…...
【入门】加密四位数
描述 某军事单位用 4 位整数来传递信息,传递之前要求先对这个 4 位数进行加密。加密的方式是每一位都先加上 5 然后对 10 取余数,再将得到的新数颠倒过来。 例如:原数是 1379 ,那么每位加 5 对 10 取余数的结果为 6824 …...
[游戏开发] Unity中使用FlatBuffer
什么是FlatBuffer 为什么用FloatBuffer,优势在哪? 下图是常规使用的各种数据存储类型的性能对比。 对序列化数据的访问不需要打包和拆包——它将序列化数据存储在缓存中,这些数据既可以存储在文件中,又可以通过网络原样传输&…...
云计算IaaS-PaaS-SaaS三种服务模式转至元数据结尾
在当今数字化时代,云计算已经成为推动企业创新与发展的核心力量。而云计算的模型主要有三种:IAAS、PAAS 和 SAAS,它们各自在云计算的庞大体系中扮演着独特且关键的角色,恰似一座大厦的不同楼层,共同构建起强大而灵活的…...
【数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现二叉排序树的基本算法。 相关知识 为了完成本关任务,你需要掌握:二叉树的创建、查找和删除算法。具体如下: (1)由…...
代码随想录第43天
300.最长递增子序列 # Dynamic programming. class Solution:def lengthOfLIS(self, nums: List[int]) -> int:if not nums: return 0dp [1] * len(nums)for i in range(len(nums)):for j in range(i):if nums[j] < nums[i]: # 如果要求非严格递增,将此行 …...
LeetCode - #158 用 Read4 读取 N 个字符 II
文章目录 摘要描述题目描述方法定义 题解答案题解代码题解代码分析示例测试及结果示例测试代码示例运行结果 时间复杂度空间复杂度总结关于我们 摘要 本文将详细解读一道与文件读取相关的编程问题:如何使用 read4 实现按需读取 n 个字符的 read 方法。我们不仅会提…...
C++(进阶) 第2章 多态
C(进阶) 第2章 多态 文章目录 前言一、多态的概念二、多态的定义及实现1.虚函数2.虚函数的重写3.多态的条件4.多态的细节 三、析构函数的重写四、重载/重写/隐藏的对比五、抽象类抽象类 六、相关题目题目1题目2 七、const修饰八、多态原理九、虚函数放在地方总结 前…...
mac删除程序坞(Dock)中“无法打开的程序“
参考: Mac删除软件之后图标还在怎么办?https://blog.csdn.net/weixin_46500474/article/details/124284161Mac程序坞中软件删除出现残留“?”图标无法删除解决方法: https://blog.csdn.net/shenwenhao1990/article/details/12865…...
【Linux】vi/vim 使用技巧
文章目录 1. 简介vi和vim的历史vi和vim的区别安装vimUbuntu/DebianCentOS/RHELFedoramacOSWindows 2. 基本操作启动和退出启动退出 模式介绍普通模式插入模式命令模式 光标移动基本移动高级移动 3. 文本编辑插入文本删除文本复制和粘贴撤销和重做 4. 搜索与替换基本搜索搜索文本…...
Python自动化办公(系统维护及开发任务状态自动推送)
Python自动化办公, 1.需求分析 系统维护及开发人员的工作一般都会比较繁杂,领导们喜欢实时掌控项目的进度,但是领导们很多时候是不会自己主动去查看及分析项目进度数据的,干活的牛马们也没空整天日报,周报,月报,季报,年报…活又有了,又该想想怎么干,需求的核心是实现自动整理…...
CentOS7 Apache安装踩坑
Gnome桌面右键弹出终端。 [rootlocalhost ~]# yum repolist 已加载插件:fastestmirror, langpacks /var/run/yum.pid 已被锁定,PID 为 2611 的另一个程序正在运行。 Another app is currently holding the yum lock; waiting for it to exit... [root…...
OpenMMlab导出MaskFormer/Mask2Former模型并用onnxruntime和tensorrt推理
onnxruntime推理 使用mmdeploy导出onnx模型: from mmdeploy.apis import torch2onnx from mmdeploy.backend.sdk.export_info import export2SDK# img ./bus.jpg # work_dir ./work_dir/onnx/maskformer # save_file ./end2end.onnx # deploy_cfg ./configs/m…...
若依微服务中配置 MySQL + DM 多数据源
文章目录 1、导入 MySQL 和达梦(DM)依赖2、在 application-druid.yml 中配置达梦(DM)数据源3、在 DruidConfig 类中配置多数据源信息4、在 Service 层或方法级别切换数据源4.1 在 Service 类上切换到从库数据源4.2 在方法级别切换…...
一些前端组件介绍
wangEditor : 一款开源 Web 富文本编辑器,可用于 jQuery Vue React等 https://www.wangeditor.com/ Handsontable:一款前端可编辑电子表格https://blog.csdn.net/carcarrot/article/details/108492356mitt:Mitt 是一个在 Vue.js 应…...
python学opencv|读取图像(九)用numpy创建黑白相间灰度图
【1】引言 前述学习过程中,掌握了用numpy创建矩阵数据,把所有像素点的BGR取值设置为0,然后创建纯黑灰度图的方法,具体链接为: python学opencv|读取图像(八)用numpy创建纯黑灰度图-CSDN博客 在…...
AtCoder Beginner Contest 383
C - Humidifier 3 Description 一个 h w h \times w hw 的网格,每个格子可能是墙、空地或者城堡。 一个格子是好的,当且仅当从至少一个城堡出发,走不超过 d d d 步能到达。(只能上下左右走,不能穿墙)&…...
分支限界法 vs 回溯法:5个关键区别和实际应用场景对比
分支限界法与回溯法:核心差异与工程实践指南 在解决复杂组合优化问题时,算法选择往往决定了程序的执行效率。当面对NP难问题时,两种经典算法——分支限界法和回溯法——常被开发者拿来比较。本文将深入剖析这两种算法的本质区别,并…...
Markdown Viewer 突破限制:全新自定义主题功能释放创作潜能
Markdown Viewer 突破限制:全新自定义主题功能释放创作潜能 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 副标题:如何通过自定义主题功能实现文档视觉体…...
RWKV7-1.5B-g1a保姆级部署教程:离线加载+免外网依赖,中小企业AI落地首选
RWKV7-1.5B-g1a保姆级部署教程:离线加载免外网依赖,中小企业AI落地首选 1. 模型简介 rwkv7-1.5B-g1a 是基于新一代 RWKV-7 架构的多语言文本生成模型,专为中小企业AI落地场景优化设计。这个1.5B参数的轻量级模型在保持高质量生成能力的同时…...
GTE文本向量助力智能写作:文本分类与情感倾向双重把关
GTE文本向量助力智能写作:文本分类与情感倾向双重把关 1. 智能写作的核心挑战:内容质量的多维评估 在内容创作领域,我们常常面临一个基本矛盾:如何同时保证文本的专业性和情感表达?传统写作辅助工具往往只能解决单一…...
终极指南:GoldHEN Cheats Manager - PlayStation 4游戏作弊代码完整管理方案
终极指南:GoldHEN Cheats Manager - PlayStation 4游戏作弊代码完整管理方案 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager GoldHEN Cheats Manager 是一款专为PlaySt…...
【CDA干货】三个部门三个营收数:1200 万、1150 万、1280 万?企业指标口径不一致,三步破局
财务部报的Q3营收是1200万,运营部那边却是1150万,更离谱的是CEO给投资人看的PPT上写着1280万。这种事儿听起来是不是很离谱?但实际上,数据对不上,这事儿太常见了。表面看是数字打架,实际上是人跟人较劲——…...
收藏!AI大模型产品经理学习路线(2026最新),从零基础到专家,收藏这一篇就够
一、AI产品经理和和通用型产品经理的异同: 市面上不同的公司对产品经理的定位有很大的差别,一名合格的产品经理是能对软件产品整个生命周期负责的人。 思考框架相同: AI产品经理和通用型软件产品经理的底层思考框架是一样的,都是…...
Agent Skill 从使用到原理,一次讲清
目录前言1. 本期内容概览2. Agent Skill 是什么3. Agent Skill 的基本用法4. 高级用法(Reference)5. 高级用法(Script)6. 渐进式披露机制7. Agent Skill vs MCP结语参考前言 学习 UP 主 马克的技术工作坊 的 Agent Skill 从使用到…...
如何利用Blender MMD Tools实现跨平台3D模型与动画工作流
如何利用Blender MMD Tools实现跨平台3D模型与动画工作流 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools 副标题&am…...
致远OA任意文件上传漏洞的深度利用与防御策略
致远OA文件上传漏洞的攻防全景解析与企业级防护指南 1. 漏洞背景与影响范围 致远OA作为国内广泛使用的协同办公系统,其安全性直接影响数百万企业的数据资产。近年来曝光的任意文件上传漏洞因其高危害性成为攻击者重点利用目标。该漏洞允许攻击者在未授权情况下上传恶…...




