diff --git a/articles/browser-proxy-plugin.md b/articles/browser-proxy-plugin.md index cbc620a72c..23e85d5e78 100644 --- a/articles/browser-proxy-plugin.md +++ b/articles/browser-proxy-plugin.md @@ -1,22 +1,11 @@ -# Oi,不要小看Proxy浏览器插件与Yak之间的羁绊啊! -原创 Yak Yak Project 2025-02-20 17:30 - -![](/articles/wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) - -超级牛: - -不知道啊 -# 这插件他喊着友情啊羁绊啊未来啊什么的就冲上来了 - -![](/articles/wechat2md-c86671c6a14b48b08bf482aeb4ae10c6.gif) - +# Yak中的Proxy浏览器插件 ![](/articles/wechat2md-ddf16f1039911f81029b4381e07925e1.png) ![](/articles/wechat2md-1a51e5f3429bb8be39d107d9c6cee861.png) -![](/articles/wechat2md-40aba6b8408caf813ef332684a830aa4.png) -## 对于 Yakit 用户来说,免配置浏览器带来了很多的便捷,一键启动即可打开一个配置好了 Yakit MITM 代理的浏览器,并且与日常使用的浏览器互不干扰。 -## 为了进一步增强免配置浏览器的使用体验、以及完成对 Proxy SwitchyOmega 插件需求的过渡,我们开发了一个类似 Proxy SwitchyOmega 功能的插件,现在当用户打开免配置浏览器时,本质上是通过插件控制浏览器的代理项,而非此前的使用固定的 chromeFlags  的方式来启动,现在点击启动免配置浏览器时,会通过 --load-extension chromeFlags  来加载我们编写的浏览器插件,如下图: +![](wechat2md-40aba6b8408caf813ef332684a830aa4.png) +对于 Yakit 用户来说,免配置浏览器带来了很多的便捷,一键启动即可打开一个配置好了 Yakit MITM 代理的浏览器,并且与日常使用的浏览器互不干扰。 +为了进一步增强免配置浏览器的使用体验、以及完成对 Proxy SwitchyOmega 插件需求的过渡,我们开发了一个类似 Proxy SwitchyOmega 功能的插件,现在当用户打开免配置浏览器时,本质上是通过插件控制浏览器的代理项,而非此前的使用固定的 chromeFlags  的方式来启动,现在点击启动免配置浏览器时,会通过 --load-extension chromeFlags  来加载我们编写的浏览器插件,如下图: ![](/articles/wechat2md-9b861b3d9374cf6afe7e38ab8c393fec.png) @@ -25,20 +14,17 @@ > 当前悬浮框UI,只会在导航地址显示,当访问别的网站时,可以点击插件图标进行使用 -当前浏览器插件的默认代理项是点击 "启动免配置 Chrome" 是配置的代理,也就是如下图中的 -**http://127.0.0.1:9999** +当前浏览器插件的默认代理项是点击 "启动免配置 Chrome" 是配置的代理,也就是如下图中的 **http://127.0.0.1:9999** ![](/articles/wechat2md-b0f9b4f1f7ae430efaca8e5887312cc8.png) ![](/articles/wechat2md-8a6a6d835b7453f9bb0d20175ab8fcf3.png) -在加载了浏览器插件后,免配置浏览器完全可以类似正常的浏览器使用,当切换到 -**[Yakit MITM]** 代理项时,访问的流量会经过 Yakit MITM: +在加载了浏览器插件后,免配置浏览器完全可以类似正常的浏览器使用,当切换到 **[Yakit MITM]** 代理项时,访问的流量会经过 Yakit MITM: ![](/articles/wechat2md-f0e14ec5ffb6efd391067c486c6e8ff3.png) -当用户选择 -**[系统代理]** 时,会和正常浏览器访问网站一样,流量不会经过 Yakit MITM: +当用户选择 **[系统代理]** 时,会和正常浏览器访问网站一样,流量不会经过 Yakit MITM: ![](/articles/wechat2md-23e82d978f75112b1d2b64e66a357adc.png) @@ -46,50 +32,34 @@ Yakit 浏览器插件也提供了自定义添加,相对比较简单。 ![](/articles/wechat2md-92c1a6c3cff2f67f0406950cfb45ebef.png) -![](/articles/wechat2md-f2ed87398c9a3478d35ca5bbbf7b608b.png) -## +![](wechat2md-f2ed87398c9a3478d35ca5bbbf7b608b.png) 代理实现部分用到了 Chrome Extensions 提供的 chrome.proxy api, 基本概念如下: -![](/articles/wechat2md-54a3022d0e06c6b3c2e8518583f6bd1f.png) -### - +![](wechat2md-54a3022d0e06c6b3c2e8518583f6bd1f.png) + 在 proxy.ProxyConfig 对象中定义。根据 Chrome 的代理设置, 这些设置可能包含 proxy.ProxyRules 或 proxy.PacScript。 -![](/articles/wechat2md-579e8f31f8015b5ef8a0fe27112481e3.png) -### +![](wechat2md-579e8f31f8015b5ef8a0fe27112481e3.png) ProxyConfig 对象的 mode 属性决定了 Chrome 的整体行为 代理用量。它可以采用以下值: **direct** -在 -**direct**模式下,所有连接都是直接创建,不涉及任何代理。此模式允许 -**ProxyConfig** 对象中没有其他参数。 +在**direct**模式下,所有连接都是直接创建,不涉及任何代理。此模式允许**ProxyConfig** 对象中没有其他参数。 **auto_detect** -在  -**auto_detect**模式下,代理配置由可下载的 PAC 脚本决定。 +在**auto_detect**模式下,代理配置由可下载的 PAC 脚本决定。 **pac_script** -在 -**pac_script** 模式下,代理配置由从系统检索到的 PAC 脚本决定 取自 -**proxy.PacScript** 对象中指定的网址,或直接从  -**data** 元素中获取 +在**pac_script** 模式下,代理配置由从系统检索到的 PAC 脚本决定 取自**proxy.PacScript** 对象中指定的网址,或直接从 **data** 元素中获取 **proxy.PacScript** 对象中指定的任何 ID。除此之外,此模式不允许使用任何其他参数,在 **ProxyConfig**对象中。 **fixed_servers** -在  -**fixed_servers** 模式下,代理配置编码在 -**proxy.ProxyRules** 对象中。其 代理规则中介绍了具体结构。除此之外, -**fixed_servers** 模式 -**ProxyConfig** 对象中的参数 +在**fixed_servers** 模式下,代理配置编码在**proxy.ProxyRules** 对象中。其 代理规则中介绍了具体结构。除此之外,**fixed_servers** 模式**ProxyConfig** 对象中的参数 **system** -在 -**system** 模式下,代理配置从操作系统中获取。此模式不允许在 -**ProxyConfig**对象中包含更多参数。请注意, -**system** 模式不同于 设置无代理配置。对于后一种情况,只有在以下情况下,Chrome 才会回退到系统设置:任何命令行选项都不会影响代理配置。 +在**system** 模式下,代理配置从操作系统中获取。此模式不允许在**ProxyConfig**对象中包含更多参数。请注意,**system** 模式不同于 设置无代理配置。对于后一种情况,只有在以下情况下,Chrome 才会回退到系统设置:任何命令行选项都不会影响代理配置。 ![](/articles/wechat2md-8cf39706ba9e1bf07d0a95908542da8e.png) ### @@ -120,9 +90,7 @@ src/ } ``` -核心部分的代理设置有 -**fixed_servers** 和 -**pac_script** 两种, 使用方式如下: +核心部分的代理设置有 **fixed_servers** 和 **pac_script** 两种, 使用方式如下: **fixed_servers** ``` @@ -175,14 +143,8 @@ await new Promise((resolve) => { 目前浏览器插件的 UI 以及用户交互部分还很僵硬,亟须改进。也理解了 Proxy SwitchyOmega 为何用户众多 —— 它的代理切换功能确实很好用,值得参考借鉴。 -**END** - -**** - **参考** - - -**参考连接 :** - +**END** +**参考链接 :** https://developer.chrome.com/docs/extensions/reference/api/proxy#type-ProxyConfig @@ -190,12 +152,18 @@ https://developer.chrome.com/docs/extensions/reference/api/proxy#type-ProxyConfi Yak 语言官方教程: -https://yaklang.com/docs/intro/Yakit 视频教程: -https://space.bilibili.com/437503777Github下载地址: -https://github.com/yaklang/yakitYakit官网下载地址: -https://yaklang.com/Yakit安装文档: -https://yaklang.com/products/download_and_installYakit使用文档: -https://yaklang.com/products/intro/常见问题速查: +https://yaklang.com/docs/intro/Yakit +视频教程: +https://space.bilibili.com/437503777 +Github下载地址: +https://github.com/yaklang/yakit +Yakit官网下载地址: +https://yaklang.com/ +Yakit安装文档: +https://yaklang.com/products/download_and_install +Yakit使用文档: +https://yaklang.com/products/intro/ +常见问题速查: https://yaklang.com/products/FAQ ![](/articles/wechat2md-382b711760574d429c6c8742ecfc1d9b.png) diff --git a/articles/cross-auth-test-for-yakit.md b/articles/cross-auth-test-for-yakit.md index 09da70f05f..e07c64064d 100644 --- a/articles/cross-auth-test-for-yakit.md +++ b/articles/cross-auth-test-for-yakit.md @@ -1,5 +1,4 @@ -# "Yaker,你可以全局配置插件环境变量!" -原创 Yak Yak Project 2024-11-28 17:30 +# 【功能上新】插件全局变量配置 ![](/articles/wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) diff --git a/articles/synscan_.md b/articles/synscan_.md index 3b9cf0374d..fe0b0d943a 100644 --- a/articles/synscan_.md +++ b/articles/synscan_.md @@ -1,19 +1,4 @@ -# 嘿朋友,你想成为SYN扫描传奇吗? -原创 Yak Yak Project 2024-11-15 17:31 - -![](/articles/wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) - -周五周五,敲锣打鼓! - -周五周五,脱胎换骨! - -![](/articles/wechat2md-45183062e7da4f3ff64df1995f4a83fb.png) - -等等,我知道你很急但你先别急 - -SYN扫描原理 奇妙至极~ - -朋友,想成为SYN扫描传奇吗? +# 嘿朋友,你想成为SYN扫描传奇吗? ![](/articles/wechat2md-ddf16f1039911f81029b4381e07925e1.png) diff --git a/articles/syntaxflow-ez-rule-using.md b/articles/syntaxflow-ez-rule-using.md index 1af3f28799..428ca320ca 100644 --- a/articles/syntaxflow-ez-rule-using.md +++ b/articles/syntaxflow-ez-rule-using.md @@ -1,31 +1,13 @@ -# 成魔成仙,牛牛自己说了算! -原创 Yak Yak Project 2025-02-07 17:31 +# Java代码审计 + +![](wechat2md-5e10ecc37e4802dec6e5ddac3d229ee4.png) -![](/articles/wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) - -我是YAK超级牛, - -能抓包来能审计。 - -漏洞bug一眼有, - -调试代码不喘气。 - -![](/articles/wechat2md-f7ef4b9d19c6077d3296946b5e1b6bc0.gif) - -![](/articles/wechat2md-45e61895f06615591f72c3a3a6f0e459.webp) - -![](/articles/wechat2md-5e10ecc37e4802dec6e5ddac3d229ee4.png) - -![](/articles/wechat2md-e455349e47d438fa3d4bc614f2423b90.png) -- 在java中,不一定是和php一样 -(只要有文件上传就一定有漏洞) -,比如springBoot中,条件限制非常多。 +![](wechat2md-e455349e47d438fa3d4bc614f2423b90.png) +- 在java中,不一定是和php一样 (只要有文件上传就一定有漏洞(bushi)),比如springBoot中,条件限制非常多。 - 硬编码:在代码审计过程中,我们需要关注硬编码,有时会有意想不到的收获 -- SCA:在java SCA中,某些依赖的版本可能会出现很多问题。 -(shiro) +- SCA:在java SCA中,某些依赖的版本可能会出现很多问题。(shiro) ![](/articles/wechat2md-0c55e01590480950fdc7f14aebc22009.png) @@ -89,9 +71,7 @@ CODE}-> as $sink File file = new File(xxx) File.delete() */ -``` -``` -``` +``` 在文件删除的过程中,向上寻找的路径中包含param,并且func中含有 **RequestMapping、getMapping、postMapping** @@ -115,10 +95,7 @@ $source(* #{ CODE }-> as $sink) ``` -``` -``` - -![](/articles/wechat2md-718f301442591e95f52eaef7aa28388f.png) +![](wechat2md-718f301442591e95f52eaef7aa28388f.png) ![](/articles/wechat2md-e7709a1e34ab7f7199ce92d695bc08e8.png) ### 多处Xss: @@ -146,11 +123,8 @@ $targetFunc(* #{ *?{opcode: param && *.annotation?{.RequestMapping || .GetMapping || .PostMapping}} CODE, }-> as $sink) -``` -``` -``` - -![](/articles/wechat2md-f685b0dc9e0d23f3d42cbeaa47da7abe.png) +``` +![](wechat2md-f685b0dc9e0d23f3d42cbeaa47da7abe.png) #### Tip: 这里看了几处,如果是权限绕过的话,session中不存在用户,那么基本上不能使用添加的功能。 @@ -173,27 +147,24 @@ CODE, 我们都将其作为一个规则组 - -![](/articles/wechat2md-f6c401379c4637e3b2b53d54f91f774c.png) - - -**END** - +![](wechat2md-f6c401379c4637e3b2b53d54f91f774c.png)  **YAK官方资源** Yak 语言官方教程: -https://yaklang.com/docs/intro/Yakit 视频教程: -https://space.bilibili.com/437503777Github下载地址: -https://github.com/yaklang/yakitYakit官网下载地址: -https://yaklang.com/Yakit安装文档: -https://yaklang.com/products/download_and_installYakit使用文档: -https://yaklang.com/products/intro/常见问题速查: -https://yaklang.com/products/FAQ - -![](/articles/wechat2md-382b711760574d429c6c8742ecfc1d9b.png) - -![](/articles/wechat2md-304b45488320344b4c7cdbd5759ee4e8.gif) +https://yaklang.com/docs/intro/Yakit +视频教程: +https://space.bilibili.com/437503777 +Github下载地址: +https://github.com/yaklang/yakit +Yakit官网下载地址: +https://yaklang.com/ +Yakit安装文档: +https://yaklang.com/products/download_and_install +Yakit使用文档: +https://yaklang.com/products/intro/ +常见问题速查: +https://yaklang.com/products/FAQ diff --git a/articles/syntaxflow-rule-manager.md b/articles/syntaxflow-rule-manager.md index e049604a64..1aff15da12 100644 --- a/articles/syntaxflow-rule-manager.md +++ b/articles/syntaxflow-rule-manager.md @@ -73,16 +73,11 @@ 值得一提的是,使用Yakit创建规则,则无须指定title和descritor。规则默认使用规则名称作为title,使用左边的描述输入的内容作为descriptor。因而我们创建规则的时候,要着重去填 **type、level与risk**。 -- **type** -type描述了规则的类型,更确切的讲,是规则的目的,也就是这个规则是用来干什么的。我们将规则分为四种类型,包括:漏洞、审计、配置、安全。如果规则没有指定type,那么默认为审计规则。 - - | **规则类型** | **介绍** | **示例** | - | ------------ | ------------------------------------------------------------ | ---------------------------------------------- | - | 漏洞规则 | 漏洞规则目的专注于寻找代码中的安全漏洞。这可能包括但不限于SQL注入、跨站脚本攻击(XSS)、缓冲区溢出等。漏洞检查的目的是确保代码在部署前没有已知的安全缺陷,从而减少被攻击的风险。 | type:vuln,type:v,type:vulnerability,type:weak, | - | 审计规则 | 审计规则是指对代码进行安全检查和评估,目的是发现潜在的安全问题或不良的编程实践。相较于漏洞规则而言,审计规则并不一定意味着发现了实际的漏洞,但它可以指出可能需要进一步调查或改进的区域。 | type:audit,type:a,type:audition, | - | 配置规则 | 配置规则目的关注于代码的配置部分,包括但不限于配置文件、环境变量、数据库设置等。配置检查的目的是确保配置项设置得当,不会导致安全漏洞或系统不稳定。 | type:config,type:c,type:configuration | - | 安全规则 | 安全规则,更精确的讲,应该叫安全热点规则。这个规则相较于漏洞规则更为广泛,它不仅包括寻找代码中的安全漏洞,还包括检查代码的整体安全架构、访问控制、加密措施、身份验证机制等。 | type:security,type:s,type:secure, | -- **level** +- **type** + +type描述了规则的类型,更确切的讲,是规则的目的,也就是这个规则是用来干什么的。我们将规则分为四种类型,包括:漏洞、审计、配置、安全。如果规则没有指定type,那么默认为审计规则。 +

规则类型

介绍

示例

漏洞规则

漏洞规则目的专注于寻找代码中的安全漏洞。这可能包括但不限于SQL注入、跨站脚本攻击(XSS)、缓冲区溢出等。漏洞检查的目的是确保代码在部署前没有已知的安全缺陷,从而减少被攻击的风险。

type:vuln,

type:v,

type:vulnerability,

type:weak,

审计规则

审计规则是指对代码进行安全检查和评估,目的是发现潜在的安全问题或不良的编程实践。相较于漏洞规则而言,审计规则并不一定意味着发现了实际的漏洞,但它可以指出可能需要进一步调查或改进的区域。

type:audit,

type:a,

type:audition,

配置规则

配置规则目的关注于代码的配置部分,包括但不限于配置文件、环境变量、数据库设置等。配置检查的目的是确保配置项设置得当,不会导致安全漏洞或系统不稳定。

type:config,

type:c,

type:configuration

安全规则

安全规则,更精确的讲,应该叫安全热点规则。这个规则相较于漏洞规则更为广泛,它不仅包括寻找代码中的安全漏洞,还包括检查代码的整体安全架构、访问控制、加密措施、身份验证机制等。

type:security,

type:s,

type:secure,

+- level level描述了漏洞的风险等级。风险等级包括:超危,高危,中危,低危和信息。不过这只是从宏观上进行分类,在实践中,你可以使用多种关键字用来表述level。 @@ -101,21 +96,9 @@ level描述了漏洞的风险等级。风险等级包括:超危,高危,中危 risk为风险类型,它同level一样,最后的risk也是依赖于alert语法。 一些risk如下: +

risk关键字

含义

url-redirect

URL重定向

sqli,

SQL注入

xss

XSS

rce, rce-command

命令执行/注入

rce-code

代码执行/注入

lfi, file-read, file-download

文件包含/读取/下载

file-write, file-upload

文件写入/上传

xxe

XML外部实体攻击

unserialize, deserialization

反序列化

path-traversal

路径遍历

...

...

-| **risk关键字** | **含义** | -| ----------------------------- | ------------------ | -| url-redirect | URL重定向 | -| sqli, | SQL注入 | -| xss | XSS | -| rce, rce-command | 命令执行/注入 | -| rce-code | 代码执行/注入 | -| lfi, file-read, file-download | 文件包含/读取/下载 | -| file-write, file-upload | 文件写入/上传 | -| xxe | XML外部实体攻击 | -| unserialize, deserialization | 反序列化 | -| path-traversal | 路径遍历 | -| ... | ... | -#### 规则内容 +#### 规则内容 规则的内容由一堆审计语句组成,不同类型的规则内容的写法都有一定的范式。现在可以通过规则管理功能查看现在拥有的内置规则是如何写的。关于这块内容,我们后续也会写一篇文章,分享不同类型内置规则的常见写法。 #### 规则输出 @@ -190,20 +173,23 @@ alert $low for { 新的代码审计规则管理功能已经上线,现在编写一条SyntaxFlow规则更为方便!同时,编写规则的时候务需准确填写规则的描述信息,因为引擎会根据描述信息自动生成规则的默认分组。也欢迎各位社区的伙伴去编写SyntaxFlow规则,并反馈你遇到的问题! -**END** - -  **YAK官方资源** Yak 语言官方教程: -https://yaklang.com/docs/intro/Yakit 视频教程: -https://space.bilibili.com/437503777Github下载地址: -https://github.com/yaklang/yakitYakit官网下载地址: -https://yaklang.com/Yakit安装文档: -https://yaklang.com/products/download_and_installYakit使用文档: -https://yaklang.com/products/intro/常见问题速查: -https://yaklang.com/products/FAQ +https://yaklang.com/docs/intro/Yakit +视频教程: +https://space.bilibili.com/437503777 +Github下载地址: +https://github.com/yaklang/yakit +Yakit官网下载地址: +https://yaklang.com/ +Yakit安装文档: +https://yaklang.com/products/download_and_install +Yakit使用文档: +https://yaklang.com/products/intro/ +常见问题速查: +https://yaklang.com/products/FAQ ![](/articles/wechat2md-382b711760574d429c6c8742ecfc1d9b.png) diff --git a/articles/syntaxflow-sca-rule.md b/articles/syntaxflow-sca-rule.md index 1b36115e61..8e9c66886c 100644 --- a/articles/syntaxflow-sca-rule.md +++ b/articles/syntaxflow-sca-rule.md @@ -1,21 +1,4 @@ # 很好SCA规则,爱来自Syntaxflow -原创 Yak Yak Project 2025-01-23 17:30 - -![](/articles/wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) - -大家好 - -这里是热(归)爱(心)工(似)作(箭)的超级牛 - -![](/articles/wechat2md-07e0331bde864646e79458f6fbb4e246.png) - -新的一年即将到来 - -在这里提前祝大家 - -身体健康,万事如意,新年快乐! - -![](/articles/wechat2md-f449c4ddfa6b3c48c868fc5c880bb625.webp) ![](/articles/wechat2md-87fd12308509d61b07e63bec52e70ef3.png) @@ -31,8 +14,7 @@ __dependency__.*fastjson.version as $ver; // 获取依赖名以 fastjson 结尾所在的依赖文件 __dependency__.*fastjson.filename as $file; ``` -``` -``` + - **__dependency__.*fastjson.version as $ver;** :筛选依赖名称以 fastjson 结尾的 **依赖版本**,并将结果存储在变量 @@ -61,9 +43,7 @@ $version in (1.2.3-beta,2.2.1-beta] // 检查版本是否在 [1.1,1.3] 或 [2.2,2.3] 或 [3.2,3.3] 范围内 $version in [1.1,1.3] || [2.2,2.3] || [3.2,3.3] -``` -``` -``` +``` 此外,也可以使用分析值筛选过滤的语法进行版本筛选: ``` @@ -72,11 +52,8 @@ $version ?{version_in:(1.0.0,2.0.0]} // 版本号是否在 1.0.0 < version <= 2. $version ?{version_in:(1.2.3-beta,2.2.1-beta]} // 版本号是否在 1.2.3-beta < version <= 2.2.1-beta 范围内 $version ?{version_in:[1.1,1.3] || [2.2,2.3] || [3.2,3.3]} // 版本号是否在多个范围内 ``` -``` -``` > 总结一下:version_in 语法 -> 使用 in 关键字版本范围表示:"]" 闭 ")"开版本范围之间可以通过 "||" 并集多个不连续的版本范围。 - +> 使用 in 关键字版本范围表示:"]" 闭 ")"开版本范围之间可以通过 "||" 并集多个不连续的版本范围。 ![](/articles/wechat2md-924cabf9397a9f37edd9d0b8c604b373.png) @@ -90,7 +67,6 @@ alert $vuln_1_2_68 for { } ``` - 简单解析一下其中使用,首先通过 **__dependency__** 内置变量获取到审计项目的所有依赖信息,然后使用 ***alibaba*fastjson**作为过滤条件获取到所有和fastjson相关的依赖信息。最后通过 @@ -123,8 +99,7 @@ type CVE struct { ... } ``` -``` -``` + 其中在生成合规规则需要重点关注的信息有两个: - CVE :CVE编号 @@ -205,8 +180,6 @@ CVE-2022-25845 } */ ``` -``` -``` 可以看到在 **CPEConfigurations**字段中有若干条配置,每个配置内部有 @@ -317,10 +290,7 @@ alert $CVE_2022_25845 for { cve: "CVE-2022-25845" level: medium, } -``` -``` -``` - +``` 我们这里使用一个lab的源码作为审计目标: JavaSecLab(https://github.com/whgojp/JavaSecLab) @@ -360,21 +330,21 @@ alert $CVE_2022_40152 for { 上述的demo脚本还有许多可以优化的地方,比如对供应商的筛选,以及一些产品的别名的修正等,感兴趣的师傅可以继续尝试可改进。 -**END** - - -  **YAK官方资源** - - Yak 语言官方教程: -https://yaklang.com/docs/intro/Yakit 视频教程: -https://space.bilibili.com/437503777Github下载地址: -https://github.com/yaklang/yakitYakit官网下载地址: -https://yaklang.com/Yakit安装文档: -https://yaklang.com/products/download_and_installYakit使用文档: -https://yaklang.com/products/intro/常见问题速查: -https://yaklang.com/products/FAQ +https://yaklang.com/docs/intro/Yakit +视频教程: +https://space.bilibili.com/437503777 +Github下载地址: +https://github.com/yaklang/yakit +Yakit官网下载地址: +https://yaklang.com/ +Yakit安装文档: +https://yaklang.com/products/download_and_install +Yakit使用文档: +https://yaklang.com/products/intro/ +常见问题速查: +https://yaklang.com/products/FAQ ![](/articles/wechat2md-382b711760574d429c6c8742ecfc1d9b.png) diff --git a/articles/vulinbox-jwt-wp.md b/articles/vulinbox-jwt-wp.md index 56e5d11cc9..ce36057d32 100644 --- a/articles/vulinbox-jwt-wp.md +++ b/articles/vulinbox-jwt-wp.md @@ -1,7 +1,6 @@ -# 震惊!YAK-JWT靶场的通关方式竟然是... -Yak Yak Project 2025-02-14 17:30 +# YAK-JWT靶场通关 -![](/articles/wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) +![](wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) 先祝大家情人节快乐 @@ -9,7 +8,7 @@ Yak Yak Project 2025-02-14 17:30 心中无爱人,工作自然神 -![](/articles/wechat2md-22ac12aa7dede6743620818f9571d487.gif) +![](wechat2md-22ac12aa7dede6743620818f9571d487.gif) ![](/articles/wechat2md-148bc7946a6236b7f129b680fb88560c.webp) @@ -35,7 +34,8 @@ Yak Yak Project 2025-02-14 17:30 ![](/articles/wechat2md-7244bb965618bbe1db99240d3d2e678c.png) -第二个页面:**https://127.0.0.1:8080/jwt/unsafe-login1**(POST请求) +第二个页面: +**https://127.0.0.1:8080/jwt/unsafe-login1**(POST请求) 同在/jwt/unsafe-login1页面,通过POST请求发送认证信息,如果成功则返回jwt,否则返回认证失败的错误 @@ -60,11 +60,9 @@ Yak Yak Project 2025-02-14 17:30 ![](/articles/wechat2md-2d1055f4bda6fa1f93c1482548baa192.png) -首先打开JWT的登录 -(未验证算法)案例,在这个案例中,后端未校验加密算法,将根据用户传递的加密算法解密验证jwt。 +首先打开JWT的登录(未验证算法)案例,在这个案例中,后端未校验加密算法,将根据用户传递的加密算法解密验证jwt。 -如图是正常的jwt结构。可以看到在header中存储了用户名,根据页面提示,游戏目标是 -**为用户信息添加flag字段**。所以我们的目标就是修改jwt内的header,并绕过后端的校验。 +如图是正常的jwt结构。可以看到在header中存储了用户名,根据页面提示,游戏目标是**为用户信息添加flag字段**。所以我们的目标就是修改jwt内的header,并绕过后端的校验。 ![](/articles/wechat2md-63521bcd51caa44b63d7a4284b025ced.png) @@ -98,11 +96,9 @@ println("%s.%s."%[header,claims]) ![](/articles/wechat2md-bc1ac79ac44a6e1da07b6f0a5857ac52.png) -打开案例:登 -录(错误中泄漏key) +打开案例:登录(错误中泄漏key) -和案例1相同的页面,发现获取用户信息的接口改为了 -**/jwt/unsafe-login2/profile**。尝试使用案例1的手段发现报错: +和案例1相同的页面,发现获取用户信息的接口改为了 **/jwt/unsafe-login2/profile**。尝试使用案例1的手段发现报错: ![](/articles/wechat2md-2d40b02a0c758764762eb60ab8ae40b8.png) @@ -115,34 +111,35 @@ jwtStr = jwt.JWTGenerateEx("HS256", { "flag":1, },{}, key)~ println(jwtStr) -``` -``` - -``` - +``` 将生成的jwt应用到/jwt/unsafe-login2/profile接口,得到返回数据 ![](/articles/wechat2md-205f1f90aa43b2d58cccf66d015d0ac4.png) 从前端页面可以看到修改成功 -![](/articles/wechat2md-d5d254364fe911486f4952ac3de47160.png) +![](wechat2md-d5d254364fe911486f4952ac3de47160.png) **END** - **YAK官方资源** - - -Yak 语言官方教程: -https://yaklang.com/docs/intro/Yakit 视频教程: -https://space.bilibili.com/437503777Github下载地址: -https://github.com/yaklang/yakitYakit官网下载地址: -https://yaklang.com/Yakit安装文档: -https://yaklang.com/products/download_and_installYakit使用文档: -https://yaklang.com/products/intro/常见问题速查: -https://yaklang.com/products/FAQ +**YAK官方资源** + +Yak语言官方教程: +https://yaklang.com/docs/intro/ +Yakit视频教程: +https://space.bilibili.com/437503777 +Github下载地址: +https://github.com/yaklang/yakit +Yakit官网下载地址: +https://yaklang.com/ +Yakit安装文档: +https://yaklang.com/products/download_and_install +Yakit使用文档: +https://yaklang.com/products/intro/ +常见问题速查: +https://yaklang.com/products/FAQ ![](/articles/wechat2md-382b711760574d429c6c8742ecfc1d9b.png) diff --git a/articles/yaklang-java-hack-upgrade.md b/articles/yaklang-java-hack-upgrade.md index 7de0a4c0f0..40f777fc6f 100644 --- a/articles/yaklang-java-hack-upgrade.md +++ b/articles/yaklang-java-hack-upgrade.md @@ -1,12 +1,6 @@ # Yak Java-Hack TemplatesImpl 升级 原创 Yak Yak Project 2024-10-25 17:30 -![](/articles/wechat2md-57d4b38fb5fac67b077017855ed50c43.gif) - -Yaklang里传来,Java-hack升级啦~ - -隔壁抽鞭子的黑工厂里,牛牛更新了吗~? - ![](/articles/wechat2md-1a81b255d0eb25ee0b3db6ccbde33174.png) ![](/articles/wechat2md-64ccd1a8cfa82e7bce38332e033ef4d5.png)