火线Zone 25年Q1季度技术文章奖励公示亲爱的火线Zone社区成员们，自火线Zone征稿奖励方案启动以来，我们收到了众多技术专家的杰出投稿。这些高质量的原创技术文章不仅丰富了我们的社区知识库，也极大地促进了安全技术的交流与分享。在此，我们对所有积极参与的创作者表示衷心的感谢，并希望激励更多的技术专家加入我们的行列，共同推动技术安全生态的繁荣发展。精华文章奖经过严格的小组讨论审核，以下文章内容符合奖励要求，文章凭借其深度分析和独到见解，手法招式新奇有创意，荣获”精华文章奖“，各获得100查克拉 + 1000RMB的奖励；红队实战：谈一谈红队中的钓鱼姿势实战版 作者：和 【挖洞之旅】一种验证码爆破漏洞的全新思路 | 简单实用 作者：cc55y优秀文章奖经过严格的审核流程，以下文章符合社区征稿意向，内容充实有新意，荣获“优秀文章奖”，各获得50查克拉积分 + 500RMB的奖励：将AI结合进越权扫描，助力SRC挖掘。 作者：Ed1s0n 谈一谈红队中的社工钓鱼姿势(上) 作者：和 谈一谈红队钓鱼中的姿势（中） 作者：和 谈一谈红队种的钓鱼姿势（下） 作者：和基础投稿奖以下文章也通过了我们的审核，符合基础投稿奖励要求，每位作者将获得50查克拉积分的奖励：利用Ollama对Deepseek 模型进行攻击 作者：jylove 红队攻防中HW的一些艺术 作者：routing奖励发放说明所有获得奖励的文章将同步发表在火线Zone公众号上，以飨更广泛的读者群体。 奖励将在每月的第一周统一发放，涵盖上月投稿的所有合格文章。请获奖者留意自己的火线安全平台账户。 如对奖励有任何异议或疑问，请及时联系火线小助手。内容征集及奖励方案详情我们诚邀更多的技术专家加入火线Zone社区，共同构建技术安全生态。更多内容征集及奖励方案详情请访问：火线Zone社区规则升级，共建技术安全生态结语火线Zone社区对每一位创作者的辛勤工作和贡献表示最深的敬意。我们期待在未来的日子里，继续与您携手合作，共同书写技术安全的新篇章。再次感谢所有支持火线Zone的朋友们！火线Zone社区团队2025年4月版权声明： 本文内容由火线Zone社区原创发布，未经允许，不得转载或用于商业用途。如需转载，请遵守转载说明中的相关规定。
议题分享：Vigor2960 Memoirs \nPursuit of the Elusive 0day & 1day
议题分享：Vigor2960 Memoirs \nPursuit of the Elusive 0day & 1day Swing2025-03-07 Writeup DrayTek, Vigor2960, 长沙CPS
0x1 前言哈喽，师傅们！这次又来给师傅们分享我的文章心得了呦，这次是给师傅们分享下js未授权漏洞挖掘的一个小技巧的汇总，然后也是会给师傅们分享几个案例，带师傅们更加深刻的理解和看的懂这个js未授权，然后再带师傅们去挖这个漏洞，从怎么挖去带师傅们掌握这个js未授权。然后特别是给一些不会挖漏洞，然后针对于FindSomething插件工具的使用来做一个分享，让师傅们对呀FindSomething插件的使用更加娴熟，能够更好的利用这个插件，然后让师傅们挖出属于自己的第一个js未授权漏洞！0x2 js未授权简介一、什么是未授权？首先理解什么是未授权漏洞未授权字面上理解是未获得授权，对于正常的业务来说，有些功能点需要经过登录之后才能进行，那么如果我们通过一些绕过，无需登录也可以完成此类操作，那么便是未授权访问漏洞了。二、常见的未授权访问漏洞常见的未授权漏洞一般分为两种：组件类的，如js未授权、redis未授权、mongodb未授权等，也是比较常见的。对于此类漏洞，可以理解为不需要登录即可执行里面的功能，所以存在未授权漏洞。 WEB层面的，如某某CMS未授权文件上传、未授权创建账号、findsomething接口拼接未授权访问敏感信息泄露等。因为可以绕过登录限制进行操作，所以存在未授权访问漏洞。三、浅谈未授权访问的挖掘不是针对所有网站，这只是一种思路，通过信息收集来实现登录绕过，从而达到未授权。正常来说可以通过抓包修改返回值也可以达到绕过，前提是不知道网站代码的判断情况下，可以尝试猜解返回值。如果网站后端认证做好了，是不会有该漏洞的。0x3浅谈 js未授权挖掘技巧一、常规js未授权挖掘这里就要和师傅们分享下我之前在没有认真研究js未授权的时候，喜欢的一个针对js的一个测试手法。我相信很多师傅应该都是和我一样的思路，就是大家知道且都非常喜欢使用的一个插件findsomething。就是常见的使用findsomething小熊猫头插件打开，然后把里面的泄露的路径进行拼接使用，然后直接拿bp进行POST/GET方法都进行跑一遍，然后再看看有没有什么js路径拼接，然后导致的敏感信息泄露。然后把插件泄露的js路径保存到一个txt文件夹里面然后简单的进行GET/POST跑下然后跑完以后会发现，怎么还是没跑出什么东西来，然后就这样觉得这个js路径很安全，没有漏洞，直接下了Google插件FindSomething下载链接：https://chromewebstore.google.com/detail/findsomething/kfhniponecokdefffkpagipffdefeldb二、使用findsomething插件工具的目的为了寻找隐藏的接口JS中存在一些网址或接口信息，特别是隐藏的一些信息，也就是UI中没有的，这些隐藏的 接口很有可能存在各种常见的漏洞，例如越权，未授权等。如果我们通过JS中的信息构造出完整的隐藏接口和传参，就有可能发现极其隐蔽的漏洞三、js未授权挖掘小技巧分享师傅们来看下下面的这个接口，是不是可以看到存在一个id参数，那么你要是直接把这个复制下来，然后去使用bp跑，是不是再怎么跑都跑不出什么信息泄露然后还有就是下面的这个js接口，findsomething显示出来的接口，一个?id=xxx的一个参数，像碰到这样的，我们是不是得提前进行一个数据的处理，然后再放到bp去跑接口，才会最大可能性让你找到一些敏感信息泄露的接口，这样就是有些师傅挖不到js未授权的漏洞，但是有些师傅却可以的原因之一了还有下面的这种情况，就是跑js路径的时候，需要我们注意前面是否有前缀像上面的存在一个#的路径，建议是师傅们单独把这些js路径给拿出来，进行一个手动拼接尝试看看未授权，或者说要爆破，那也得把这个/#/这个给带上，然后再进行一个爆破，下面简单来拿百度的给师傅们看看这个案例下面可以把findsomething的url复制到一个txt文本里面，然后进行替换如下：四、查询接口的未授权访问测试奇招就是我们平常在测试漏洞的时候，有时候不传参，或者在参数置空，发包的时候，对方服务器返回的请求是500的时候，那么有时候使用下面的参数进行一个传参，把这个给加上去，那么有时候会有一个不一样的效果，有时候就能返回一些高权限才可以看的内容{ "pageNum":"1", "pageSize":"100" } { "pageNo"1", "pageSize":100, }五、HAE匹配规则下面是我给师傅们整理的HAE正则匹配，直接使用bp中的hae插件，把下面的规则直接导入到bp插件hae中，或者编辑Rules.yml文件type:"POST"|type:"GET"|post("|get("|ashx?|ashx|ur1:|ur1:"|ur1:|path:|path:|path:|action?|data|params0x4 总结针对js未授权漏洞的一个分享呢就到这里文章就结束了，希望这篇文章对师傅们有帮助。师傅们在挖掘企业src或者edu过程中，这个js未授权和使用FindSomething插件使用去挖掘漏洞来讲，特别是针对小白师傅们是非常友好的，也是蛮建议师傅们看完我的文章然后去进行一个js未授权的一个漏洞挖掘，这样可以让师傅们更加掌握这个技能，也是希望师傅们偶尔挖挖漏洞，然后赚点赏金什么的。文章中涉及的敏感信息均已做打码处理，文章仅做经验分享用途，切勿当真，未授权的攻击属于非法行为！文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失，均由使用者本人负责，作者不为此承担任何责任，一旦造成后果请自行承担！
声明本文章所分享内容仅用于网络安全技术讨论，切勿用于违法途径，所有渗透都需获取授权，违者后果自行承担，与本号及作者无关，请谨记守法.此文章不允许未经授权转发至除 火线Zone 社区 以外的其它平台！！！0x1 前言一、浅谈这篇文章主要是给师傅们分享下前段时间我们公司做的渗透测试，这次是跟市里面的网信办一起做的。因为是第一次所以我们这次做的渗透测试价格不高，主要是为了后面连续几年的一个渗透测试服务项目。这次的渗透测试范围特别广，包含整个市里面的好多政企单位和学校，资产多，测试起来也就比较简单。下面简单给师傅们分享下一些渗透测试上面的漏洞复盘，给新手师傅们，特别是没有参加过渗透测试的师傅们给点经验。这里需要注明下，该项目中的漏洞目前已经全部修复了，另外提醒师傅们不要做未授权测试。所以下面的渗透测试漏洞案例中又部分截屏不全，我会备注，因为目前已经修复了。二、资产整理首先我会把公司发的跟这次渗透测试项目相关的文件和资产，还有一些些漏洞报告的模版之类的汇总在一个文件夹中，这样方便后面我自己进行一个漏洞报告编写，以及资产的收集整理，比如像web资产和APP、小程序漏洞都是可以分开整理我们在渗透测试项目之前，甲方那边都会给我们一些资产相关的表格，下面就是常见的excel表格资产，还有就是有些甲方可能目标资产不是那么多，且大多都是web资产，直接也有发txt文件的txt的类型像下面的如下：然后像渗透测试，还有就是授权书也是得有的，这里我们都是合法授权渗透测试的项目，跟那边都有授权合作的项目书，这里也希望师傅们能够合法进行渗透测试0x2漏洞一 短信轰炸一、纵向轰炸这里首先先带师傅们看看渗透测试常测试的点，比如像登陆口，一般都有手机号码登录，手机号码验证登录，需要我们接受短信验证码，然后进行登录操作。像渗透测试还有重测和src漏洞挖掘中，短信轰炸都是收的，企业src价格低点，且一般香短信轰炸，一般像很多企业都要求在比如每分钟15/30条以上就收。这里测试的手是一个人力资源管理局的一个微信小程序，这里直接输入我自己的手机号，然后使用bp抓包，拦截短信验证码发送的数据包：直接把数据包放到重放模块，下面直接go一下（第一次go）数据包可以看到数据包回显是正常的，且手机也是正常的接受到了短信验证码了但是第二次再次点击发送数据包，缺显示报错，意思是我们已经发送了一次，在短时间类不能再发送了这里我们就可以想下了，我们能不能进行一个验证码发送限制次数的绕过，这个要是能绕过，无限次数的发送验证码是会消耗这个单位的一个资源的然后我们就可以进行一个测试了，看看什么字符可以进行绕过验证码发送呢？经过测试发现，可以通过@、空格、+86、逗号等进行绕过，从而达到短信轰炸的漏洞危害：我们如果要把危害加大，达到一分钟短信轰炸达到几十条，那么我们就要利用bp的爆破了，我们手动添加多个绕过字符，然后进行爆破，尽量多的提高每分钟爆破短信验证码的发送次数，以此来提高这个漏洞的危害：然后师傅们就可以看自己的手机上面的短信验证码了，就可以看到一次性并发绕过了很多条短信验证码：二、横向轰炸然后这个人力资源局的小程序还存在横向爆破绕过漏洞，可以进行双手机号验证码同时进行发送，从而造成逻辑漏洞，下面师傅们可以参考下我具体的绕过技巧，在碰到这样的场景时候，直接去实操即可类似下面的，常用的就是下面几个：phone=13888888888,phone=13999999999 phone=13888888888&phone=13999999999 phone=13888888888,13999999999 phone=13888888888&13999999999下面我就直接重新回到刚才上面的抓包步骤，抓取发送短信验证码的数据包，然后去尝试使用上面的绕过方法，看看能不能进行绕过，双手机号验证码同时发送，这里我使用我的卡一和卡二来演示：我这里使用的就是下面这个思路：phone=13888888888&13999999999然后就可以看到自己手机短信验证码，收到了来自卡一和卡二一样的验证码，且时间也是一样的：然后我们这里就可以使用卡二的手机收到的验证码，只需要知道卡一的手机号就行了，那么就可以直接登陆卡一的账号那么我们后面深入利用就可以去改人力资源局相关站点去搜索电话号码，然后使用这个漏洞就可以越权登陆其他账号，特别是像权限比较高的admin之类的管理员账号三、短信轰炸总结下面是我之前总结的一些验证码爆破的一个思维导图，师傅们可以保存下，对于挖掘企业src和众测的时候，厂家收不收呢，其实可以看看相关的文档，一般都是定义每分钟15/30条以上就收0x3 漏洞 二 SessionKey三要素泄露一、未授权登陆下面这个漏洞就是给师傅们分享下，在渗透测试中比较容易发现，并且好打的一个漏洞点——SessionKey三要素泄露，这个漏洞在蛮多微信小程序中都存在，且利用的手法不难，看完我这篇文章，师傅们也可以去测试下这个漏洞需要使用到一个SessionKey三要素解密的工具，有直接下载使用的，也有burpsuit插件，反正原理都是一样的，加解密→替换数据包→未授权登陆1、首先介绍下使用到的SessionKey解密工具https://github.com/mrknow001/wx_sessionkey_decrypt/releases/tag/v0.1这个工具直接双击运行即可，类似下面的：还有一个就是使用burpsuit的自带插件https://github.com/mrknow001/BurpAppletPentester/releases/tag/v1.1直接就可以导入到bp插件中2、这个微信小程序是目标资产中的一个大学的小程序设备，大学那种预约访谈进出校园、校园招聘那种功能点，像这样的基本上都有那种手机号一键登陆的功能点，像这样的微信小程序手机号一键登陆，很大概率存在SessionKey三要素泄露漏洞，这样的漏洞我之前挖EDUSRC挖了好多，且有一本证书站也就是这个漏洞，但是没有那么明显3、点击手机号快捷登陆操作，直接使用bp抓包，可以看到数据包中出现了SessionKey三要素泄露：4、直接一键发送到AppletPentester 插件中5、直接一键解密即可6、在信息收集的时候，在一个接口中，发现这个微信小程序里面有很多的一些学校老师信息，比如手机号之类的，然后这里我就带师傅们利用这个SessionKey三要素泄露漏洞，直接未授权登陆管理员老师账号直接替换成管理员老师176的手机号，然后点击加密再进行登陆口抓起数据包，替换数据包，然后点击重发数据包即可就可以直接未授权登陆这个账号了二、弱口令+信息泄露然后，我这里直接把这个小程序的host拿到web页面去访问，因为我一般打小程序都有这个习惯，看看web端有没有系统，特别是那种登陆系统，弱口令的概率很大打开web端访问，直接跳转这个页面，特别经典的若依系统页面这里直接使用刚才的手机号+弱口令密码直接成功登陆了后台，里面泄露了整个学校的学校个人敏感信息0x4 JWT爆破攻击一、可爆破/未验证签名导致越权首先通过微信搜索小程序，找到对应目标资产中的小程序系统直接点击这个微信小程序，这个时候我们需要一直打开我们的bp抓取小程序的数据包（这个是一个测试小程序的一个好习惯，因为有些接口，包括敏感信息泄露，看历史的数据包很关键），然后看看数据包有没有什么提示，因为这里我的bp安装了HAE，一般重点关注带颜色的数据包这里我们可以看到bp的历史数据包，显示了多个JSON Web Token也就是大家常说的JWT值，像一般碰到这样的JWT值，我一般都会选择JWT爆破尝试haiy选择有无设置None加密，去进行做一个渗透测试这里先直接复制到https://jwt.io/ 去看看这个JWT里面的内容，然后去猜测这个paylod校验哪部分下面我来给师傅们讲解下这个payload代表什么，一些新手师傅可能没有了解过，包括后面进行数据包替换，也是要修改其中的payload值|字段名|值|说明||-|-|-||role|appUser|用户角色，表明用户属于应用层普通用户（非管理员）||exp|1747377338|令牌过期时间（Unix 时间戳）。通过转换可得具体时间：2025-11-14 11:15:38 UTC||userId|xxxxxxxxxxxxxxxxxx|用于标识用户身份||user_key|xxxxx-xxxx-xxxx-xxxx |用户密钥或关联密钥（可能用于访问控制或加密）。||username|1xxxxxxxxx79|手机号，一键微信登陆的|这里先使用自己修改的JWT脚本爆破工具，看看能不能爆破出密钥爆破发现其密钥为123456然后直接来到刚才JWT的网站，去利用该key构造JWT，可以直接进入后台，下面的勾需要勾上因为这里我经过测试，这个网站的JWT是对user_key进行校验，所以只要在规定时间内user_key不过期，那么我们就可以拿另外一个手机号进行测试，替换bp抓取登陆口的数据包，然后放包就可以直接登陆别的账号首先这里需要修改下时间戳，拿这个网站：https://tool.lu/timestamp/ 一般都是改成第二天的时间，不可以早于测试时间还有就是把username替换下，这里我做测试，替换我的卡二，也就是最后面说93的尾号，因为经过测试，普通用户的role 都是appuser，这里猜测管理员可能是admin然后直接在小程序登陆口，使用bp抓包，然后劫持数据包，进行替换token值，因为这里经过测试是校验的JWT值通过不断替换JWT值，然后不断测试放包，放包，最后面可以直接不需要使用账号密码，直接登陆改账号二、设置加密为None导致不验证签名从⽽达到越权上面那种情况只需要爆破密钥，或者一些系统框架默认使用一些密钥，没有经过修改，可以直接利用默认key的那种，这里给师傅们讲解下那种设置加密了——None加密，导致直接爆破不了，需要使用JWT工具自动生成None加密的四种不同算法，也可以理解成一种绕过思路这里需要使用的工具是jwt_tool，下载地址如下：https://github.com/ticarpi/jwt_tool这里我这个小程序是不存在这个漏洞，但是这里给没有学过这个漏洞的师傅们演示下python jwt_tool.py JWT值会直接显示JWT解密以后的内容显示出来下面使用这个工具来测试 None 算法漏洞使用下面的这个语法跑这个脚本，⾃动⽣成 4 种 None 算法的变体（⼤⼩写敏感测试），其实也就是使用这四个token去挨个尝试替换，然后发包，看看返回包是否有成功回显数据python jwt_tool.py JWT值 -X a burpsuit返回包总结：401 Unauthorized → 签名校验失败，可尝试算法混淆或密钥爆破 200 OK → 攻击成功（罕⻅，说明存在⾼危漏洞） {"error":"alg not allowed"} → 服务端禁⽤ None，可尝试算法改⽤其他攻击向量（如 PS256 → HS256）0x5 OAuth2.0漏洞这次我在测试过程中碰到了OAuth2.0漏洞，是一个企业的微信公众号和一个带宣传性的一个登陆管理网站存在的这个漏洞，直接存在二维码不需要二次确认扫描，目前已经被修复了，但是那种漏洞的站点很明显，截屏那个网站的logo打码也看的出来所以这里直接给师傅们分享下我之前写的一篇关于OAuth2.0漏洞的文章，在先知社区原创的文章：https://xz.aliyun.com/news/16153简单案例分享简单来讲就是在登录过程中，比如可以使用第三方应用授权登录，且扫描二维码登录不需要确认校验，直接扫码即可登录，那么就可以使用二维码钓鱼之类的危害，就是文章开头的描述的百度案例一样。这里进入后台，然后有一个使用微信绑定，扫描二维码的功能点击立即绑定，然后就会弹出来一个二维码，那么我们就可以拿这个二维码进行一个钓鱼欺骗，让别人扫描二维码，从而绑定别人的微信号就跟我上面的一个，搞一个钓鱼的二维码模板，然后往一些网安群里面一发，说什么小白免费领取网安教程，只需要扫描此二维码即可（肯定有人扫的）0x6 jeecg泄露漏洞一、jeecg框架简介JeecgBoot是一款基于AIGC、BPM和低代码引擎的AI低代码平台，旨在帮助企业快速实现低代码开发和构建个性化AI应用！前后端分离架构Ant Design&Vue3，SpringBoot，SpringCloud Alibaba，Mybatis-plus，Shiro。强大的代码生成器让前后端代码一键生成，无需写任何代码！ 引领AI低代码开发模式: AI生成->OnlineCoding-> 代码生成-> 手工MERGE， 帮助Java项目解决80%的重复工作，让开发更多关注业务，快速提高效率 节省成本，同时又不失灵活性！低代码能力：Online表单、Online报表、大屏/仪表盘设计、表单设计、流程设计、报表设计;AI能力：AI应用平台+知识库问答、AI模型管理、AI流程编排、AI聊天、AI建表等,支持各种AI大模型ChatGPT、DeepSeek、Ollama等.jeecg官网如下：https://www.jeecg.com/二、jeecg综合漏洞利用工具这里先给新手师傅们分享个还不错的jeecg漏洞利用工具，首先这个工具书GUI图形化工具，还有就是这个工具更新了很大jeecg的历史nday漏洞在里面，使用操作简单工具下载链接：https://github.com/MInggongK/jeecg-这里给师傅们演示下，直接把可能存在jeecg漏洞的url导入目标中，然后选择ALL模块，进行检测即可三、从小程序到web端接口泄露好了，这里废话不多说了，这里回归这次渗透测试项目中来，再次给师傅们分享下这个漏洞，因为有些刚接触网安的师傅还没有接触这个漏洞，所以这里给大家分享下，这次jeecg漏洞通过以前保留的一些jeecg测试手册，一些jeecg的接口和bp数据包，像这样的jeecg框架系统，都是可以直接拿来测试1、首先，这个系统漏洞还是小程序，直接搜索对应资产小程序名称，这个系统是该市里面的一个大学的缴费系统2、打开微信小程序，首先我会直接去打开bp抓包，然后这里随便点击里面的功能点，然后进行看里面的数据包然后去翻里面的历史数据包，师傅们可以看到下面的table关键字这个tableNane关键字让我感到兴趣，是因为开发人员在一些做接口命名的时候，不会随意取名称，他这个接口后面的tableNane=xxxx，这里我直接去拿table表名出线多的去尝试猜测下这里我尝试了几个，但是都没有出信息，还尝试了information_schema.tables表名，都没有什么数据回显然后我这里还尝试直接把表名置空，但是依然没有什么敏感数据回显3、这里直接把小程序数据包中的host域名和端口，直接放到web端去访问，然后再尝试别的测试4、这里使用findsomething插件，去跑下web页面泄露的接口，这里把收集到的接口放到一个1.txt的文件中5、这里师傅们要是没有思路，最简单的就是就可以直接把findsomething插件泄露的接口利用bp的POST和GET方法都跑一遍即可。但是这里我需要找找我保存的接口里面有没有泄露跟tableName相关的6、通过findsomething插件，得到了好几个tableName的接口，然后直接使用bp去访问，发现一个接口直接泄露了四百多个数据表格名称然后每个表里面都泄露了好几百个个人敏感信息，比如身份证、手机号、姓名之类的四、SQL注入漏洞这个小程序的一个接口还存在SQL注入漏洞，通过测试，直接可以注入出数据库名称，直接又一个SQL注入到手了SQL注入payload：updatexml(1,concat(0x7e,user(),0x7e),1)五、提权操作师傅们，其实测试到这里，这个系统小程序和web端都摸熟悉了，就是jeecg的系统框架，里面的很多接口都是jeecg开发默认的接口名称，但是前面的路径发生了一点变化，没有原班直接拿jeecg的接口使用，但是经过FUZZ测试出来了很多接口，这里给师傅们分享下，我先注册一个账号，然后提权到admin管理员账号的过程。首先我使用register注册接口，注册一个账号下面就是提权的一个操作了，需要再次FUZZ接口，因为打jeecg漏洞多的师傅们，都知道，jeecg有很多的接口，像什么注册、查信息，查user_id，查所以账号的token值，还有用户敏感信息等，但是现在很多系统都不会直接拿jeecg都路径接口部署了，多多少少会进行魔改这里首先需要查询管理员admin的账户ID然后查询自己刚才创建用户的ID值然后使用打提权使用的jeecg漏洞poc，如下：//roleld填写需要提权的角色id userldList填写自己的idPOST xxxxx/jeecg-boot/sys/user/addSysUserRole（jeecg接口，需要自己去尝试，不一定是我这个） HTTP/1.1 Host: Cookie: cna=Ov9SH4RxGiACAf////9C18zb User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0 Accept: application/json, text/plain, */* Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate X-Access-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MjUzNzMyNDMsInVzZXJuYW1lIjoiMTEwMTAyIn0.NXRckymfKdZvEFsDQZ9Jwvk_rU_gVny2Rx6A Tenant-Id: 0 Origin: Dnt: 1 Referer: Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin Priority: u=0 Te: trailers Connection: close Content-Type: application/json Content-Length: 96 { "roleId":"xxxxxxxxxxx", "userIdList":[ "xxxxxxxxxxxxxxxx" ] }这样就成功创建了这个系统的admin管理员的账户了，后面的思考就是直接使用创建的账户密码，去尝试爆破登陆其他系统六、其他jeecg小技巧下面再给大家总结下jeecg的其他打法小技巧一、常见的接口敏感信息泄露：/v2/api-docs /swagger-ui.html /env //获取参数信息 /actuator /mappings /metrics /beans /configprops /actuator/metrics /actuator/mappings /actuator/beans /actuator/configprops /actuator/httptrace二、常见jeecg框架接口关键字：像看到下面的几个关键字，首先需要想到使用jeecg去打，因为很多现在直接把jeecg关键字给魔改了jeecg/ api/sys/ sys/user三、jeecg的几个常用弱口令：可以使用下面的弱口令去尝试爆破下登陆接口admin:123456 jeecg:1234560x7 总结然后还有很多其他的漏洞，这次文章就不一一给师傅们分享了，留着下次有时候给师傅们分享，这次写这篇文章由于之前的渗透测试项目漏洞都修复 了，我才写的这篇文章，所以实属不易，为了给师傅们演示的那么细致，特意去网上现找了一些漏洞实操截图给师傅们，因为之前的漏洞报告没有写的那么详细，这里怕新手师傅看不懂。这次渗透测试总共提交了四五十个漏洞报告，其中包括很多框架系统的默认弱口令，这个确实让我蛮意外的，还有一些网上的nday，这里面有些老系统也存在，因为测试的资产比较多，所以相对来讲出洞率较高。最后，希望看完这篇文章的你，也可以挖到心仪的漏洞！
重塑传统自动化漏洞挖掘的Multi-Agent框架攻防一体化实践
重塑传统自动化漏洞挖掘的Multi-Agent框架攻防一体化实践前段时间在某大厂做安全研究时，针对SDLC的重复性审计工作结合大模型Agent思索了一些可行的思路，便在不断摸索中构建了一个Multi-Agent的协同漏洞挖掘框架系统，目前个人使用来看对于开源的web应用的实战效果相比传统的SAST、DAST以及纯LLM的漏洞挖掘工具来说还是很不错的，便记录此篇框架实现过程和当今Agent赋能漏挖的可行性与优势供师傅们交流指点....0x00 传统漏洞挖掘的困局当前针对Web应用后端的自动化漏洞挖掘技术主要受困于“覆盖率”与“准确性”难以两全的矛盾： 传统的静态分析技术虽能提供全量的代码覆盖，但由于缺乏对程序运行时状态和复杂业务逻辑的语义理解，往往导致海量的误报噪声，极大地增加了安全工程师的审计成本 而动态应用程序安全测试虽能在黑盒方面挖掘漏洞更具真实性，却受限于黑盒视角的路径探索能力，难以触及深层业务逻辑，会存在很多漏报 目前大语言模型的出现为代码语义分析带来了新的契机，但受限于Context Window 的约束以及生成式模型固有的幻觉问题，直接依赖原生LLM进行大规模代码审计往往导致分析结果碎片化且缺乏可信度，并且直接将代码喂给大模型容易受与漏洞无关代码的影响 0x01 探索漏洞挖掘框架的新出路？在探索新的框架实现时，我们可以思考是否能将黑白盒的现有技术互补结合来引导漏洞挖掘？以及我们可以看到几年LLM与Agent相关技术如MCP、RAG的工程化落地，能否用LLM赋于框架更好的语义理解和丰富的上下文能力，再通过Agent做一套自动化流程？为突破上述技术瓶颈，我在探索新的漏洞挖掘框架时也看了一些目前学术界的相关LLM赋能的研究与github开源的技术实现，总体的探索方法还是在论文与现实实践中思考各个方面的优势与缺陷，最终确定做一个基于Muti-Agent协同的智能化漏洞挖掘框架：构建一个从静态分析到动态验证的闭环生态。技术上引入MCP 来作为连接LLM推理能力与静态分析工具的桥梁，利用RAG 技术通过构建高质量漏洞专家知识库来校准模型判定，深度缓解LLM的“幻觉”与知识盲区；同时，结合运行时自动化的流量Fuzz模糊测试技术，将白盒的逻辑推演与黑盒的攻击验证深度融合，减少漏洞的误报和漏报。这里放一个当时挖到的有CNVD证书的水洞，通过项目上传与聊天，自动化分析审计出多处SQL注入漏洞，并且能够给出攻击POC，以及后续完整的修复方案0x02 框架核心：打破黑白盒壁垒该框架核心架构旨在重构传统安全检测的边界，提出了一种 “白盒语义指引黑盒，黑盒动态验证白盒”的深度融合范式。框架并非单一工具的线性叠加，而是一个基于Multi-Agent编排（Agent Orchestration）的异构系统。 白盒分析维度：框架引入了MCP作为智能体的执行接口，驱动底层的静态分析工具与正则匹配引擎，对代码AST进行初步扫描，快速锚定潜在的危险函数调用Sink。为解决静态分析中常见的上下文缺失问题，进一步融合了RAG 技术：通过引入高质量的博客记录的高精度漏洞知识库，系统能够为大语言模型提供特定漏洞类型的完备的Context上下文与判定依据，从而在保持高代码覆盖率的同时，抑制传统模式匹配带来的误报，实现了从“语法”到“语义”的代码的全面理解提升。 黑盒验证维度：框架构建了运行时的自动化Fuzz模糊测试。该模块独立承担着对Web通用漏洞（如XSS、SQL注入）及敏感信息泄露的覆盖任务。当白盒Agent发现疑似逻辑漏洞时，通过黑盒上的Fuzz可在流量侧生成针对性的变异Payload进行动态优化，通过分析HTTP响应状态来实证漏洞的可利用性。 我认为将静态视角的逻辑推演与动态视角的攻击验证相结合的机制，能极大地提升了漏洞检测的置信度，实现了真正意义上的全链路攻防评估，刚开始时候画的大致架构草图，仅贴示了主要功能，一些细节实现并未展示：0x03 智能化Agent设计细节1. Static Orchestration Agent：基于MCP协议的异构工具编排在传统的LLM应用中，模型往往被禁锢在文本交互的孤岛中，难以触及本地庞大的代码仓库，且面临着Context Window对海量代码理解的限制。本框架设计的漏洞定位Agent，本质上是一个 静态分析增强型智能体(Static Orchestration Agen) ，通过引入MCP与构建Prompt定义角色任务将LLM从被动的文本生成者转变为主动的工具使用者，通过静态分析获取代码结构中的丰富语义上下文MCP驱动的“深层感知”不同于简单的API调用，MCP协议使得Agent能够理解工具的输入输出Schema，实现复杂的推理链条： 工具与模型的语义对齐：通过定义标准化的MCP接口，将底层的静态代码分析工具封装为LLM可调用的能力。 意图驱动的执行：构造合适的CoT思维链Prompt让Agent根据当前的分析任务代码（例如“寻找未授权访问漏洞”），自主决策调用何种工具、传入何种参数。这可以让Agent模拟安全专家的思维过程，主动去探测代码中的漏洞点。 SINK点定位与攻击面收敛针对LLM处理大规模代码时的“大海捞针”难题，高效定位漏洞利用链 SINK点精准锚定：Agent并不直接阅读全量代码，而是利用MCP驱动底层扫描器，基于AST解析和高精度的正则模式，快速提取代码中的SINK点（需要根据不同语言类型的不同漏洞进行扩充分类） 代码切片与上下文聚焦：一旦定位到SINK点，系统会通过静态分析工具获取sink点污染的上下文Code Slice，并且做到变量语句级，将无关语句统统移除(这里详细的实现师傅们可以去阅读Joern等工具的源码和他的论文，主要在于CPG代码属性图的构建和后向切片等算法技术)。极大地收敛了分析范围，过滤大量无关业务代码，确保输送给LLM进行深度研判的每一行代码都具有潜在的安全价值（无论是控制流还是数据依赖流都对漏洞的存在有潜在的约束和影响）。这不仅大幅降低了Token消耗，更显著提升了后续漏洞验证的准确性。 2. Contextual Reasoning Agent：基于RAG的领域知识增强与检索优化作为本框架保障检测精度的核心组件，校验 Contextual Reasoning Agent承担着“校验”的角色。针对通用大语言模型在特定安全领域存在的专业知识匮乏与逻辑幻觉 问题，本模块引入RAG 技术，人为构建了一个可随时扩展的领域专家知识文档库，通过实时注入精确的先验知识来约束和校准模型的推理过程。RAG知识库的结构化重构与向量化为了让非结构化的安全知识能够被机器高效理解，摒弃粗暴的文本截断，采用基于Markdown语法树的结构化清洗策略。系统依据标题层级对海量的漏洞PoC、修复方案及原理分析文档进行逻辑切分，确保每个Chunk都包含完整的语义单元例如一个简易的MARKDOWN文档：动态滑窗与重叠分块策略在知识切片过程中，为了规避硬切分导致的语义断层，切片策略采用基于重叠策略（Overlapping Strategy）的动态滑窗机制： 语义连贯性保障：设定固定的Token阈值作为基础窗口大小，同时引入预设比例的重叠缓冲区。每一分块的末尾段落会被完整保留并作为下一分块的起始上下文。 边界信息无损传输：这种机制确保了跨越分块边界的逻辑描述（如一段跨越多行的代码逻辑或长难句的漏洞解释）不会被割裂，保证了向量检索时上下文信息的完整性与连贯性。 向量检索与推理运行采用all-MiniLM-L6-v2模型作为Embedding引擎。该模型在保持低延迟推理的同时，在多语言的语义相似度任务上有更好的泛化能力;数据库采用集成Qdrant向量数据库，支撑大规模向量的高并发检索 上下文感知的推理校准：当定位Agent上报疑似SINK点时，校验Agent会提取当前代码特征，在向量库中实时检索最相似的Top-K个历史漏洞模式和修复示例。这些检索结果被作为增强上下文 注入到LLM的Prompt中，迫使模型基于检索到的“事实依据”而非单纯的概率预测进行最终判定，减少了误报的产生 0x04 动态流量FUZZ我从以往的安全研究触发，针对通用型漏洞的工具做了大量的调研，并基于BurpSuite原生API开发了自动化Fuzz工具如：反射性和存储型XSS、SSRF、CORS、敏感信息泄露等（同时也是在锻炼开发能力，也让日常重复性漏洞渗透工作能够做的更高效），再结合MCP集成给Agent。该模块并非简单的随机测试，而是作为一个流式检测组件，实时拦截、解析并重放业务流量，对潜在漏洞动态扫描。而对于敏感信息泄露则是比较容易 ，针对Spring Boot Actuator、Swagger UI、Druid Monitor等常见中间件的指纹来做识别。同时，结合模式匹配，对响应包中的JWT Token、阿里云AK/SK、AWS凭证等高熵字符串进行实时监测，有效发现硬编码或调试信息泄露。下面挑了几个通用型漏洞的Fuzz来做简单做下原理解释1. 通用XSS漏洞的自动化Fuzz比如针对XSS反射型和存储型漏洞，开发时采用了全量参数解析+动态污点标记的检测策略，确保对异构http包结构中参数的全面覆盖。 深度参数提取与结构化解析：不仅仅局限于URL Query参数，还有针对JSON、XML、Multipart-form等多种数据格式的解析器。能够递归遍历HTTP Request Body中的每一层嵌套结构，提取所有用户可控的叶子节点作为Fuzz入口。 唯一性污点标记：为了解决并发扫描时的结果混淆问题，引擎摒弃了静态Payload，转而采用动态生成的唯一性测试标记。 Payload构造：Timestamp + RandomStr + Vector（例如：CurrentTime等高熵字符串） 状态映射表：内存中维护一张高并发的HashMap，记录RequestID <-> ParameterName <-> UniquePayload的映射关系。 响应回显与验证：发送测试请求后，引擎自动捕获HTTP Response，通过高效的字符串匹配算法检索之前的唯一标记。一旦检测到标记回显且上下文未经过滤（如HTML实体编码缺失），即判定存在可疑XSS漏洞，并自动关联原始请求数据生成漏洞条目。 （当时研究设计思路时绘制的草图）2. 访问控制与配置缺陷的CORS漏洞检测自动化Fuzz HTTP请求头中的Origin字段，构造包括恶意第三方域名、特殊字符（如null）及子域名在内的多种变异Payload 高危利用判定：当响应头Access-Control-Allow-Origin和攻击者Payload一样或为小写null，且同时存在Access-Control-Allow-Credentials: true时，将其标记为高危漏洞。此类配置允许攻击者绕过同源策略（SOP）窃取用户敏感数据 严格语法校验：针对协议规范的边缘场景进行校验，例如检测到Access-Control-Allow-Origin: Null（大写）时，引擎会自动识别其为无效配置（浏览器不识别大写Null），从而将其作为无效处理以及服务端错误配置导致Access-Control-Allow-Origin始终和Origin一样，这里放一张示例图便于理解： 0x05 构建认知型安全智能体的未来图景在对Multi-Agent探索自动化漏洞挖掘实践的探索过程中，其实我们一直在试图回答一个核心问题：如何在安全攻防领域，构建一个具备“感知-推理-决策-行动”完整闭环的智能系统。目前的Agent主要还停留在“检测与验证”阶段，之后更完备的阶段是自动化环境的感知探索与白盒源码的结合，以及能够基于当前的Shell环境或数据库权限，自主规划后续的横向移动与权限提升路径。另一个重要的方面是自适应Payload生成：比如利用强化学习反馈机制，让Agent在面对WAF拦截时，能够动态调整Payload的混淆策略，实现智能化的WAF绕过希望本文的实践能为各位师傅提供一种新的视角供师傅们交流指点～
微服务应用漏洞自动化挖掘MScan的实现与实战（下）
助理安全研究员（漏洞挖掘与利用）（北京）薪资：17-19k，15薪，具体可进一步沟通投递方式：campus@360.cn职位职位链接：https://360campus.zhiye.com/campus/detail?jobAdId=69b88265-4f41-4e90-b2e3-02ae630c7631工作职责1、深入研究软件、设备、系统、网络协议等某领域或多领域的安全漏洞，利用逆向工程、模糊测试、静态/动态代码分析等技术，主动发现并验证新的安全漏洞；2、探索应用大语言模型（LLM）技术于Web与二进制领域的复杂漏洞挖掘，结合专业知识，设计构建相关自动化工具/流程；3、研究前沿攻防技术，跟踪国内外安全动态与漏洞披露信息，复现漏洞，研究攻击手法和防御技术，持续提升公司的安全研究能力；4、参与相关项目或课题，推动漏洞研究能力的价值转化。任职资格1、计算机科学、信息安全或相关领域本科及以上学历；2、对Web和二进制安全漏洞有一定的认知，具备一定的逆向分析能力和研究能力，熟练使用常见工具，如：IDA、WinDbg、GDB等；3、熟练掌握C/C++/Python等至少一种语言，熟悉X86或ARM汇编指令，有扎实的编程基础；4、对漏洞挖掘与利用感兴趣，有热情和自我驱动力，有一定的抗压能力和较强的团队协作精神。以上职位满足以下至少一项条件者优先录用：1、参加过天府杯、Pwn2Own等赛事，并成功攻破目标，作为CTF主力选手取得过优秀的成绩。2、在有影响力的业界会议（学术/工业）上发表论文；3、有独立挖掘漏洞的经验，获得过主流厂商的CVE编号；4、通过使用/定制/自研工具发现有效漏洞；安全研究员（Windows方向）（北京）薪资：17-19k，15薪，具体可进一步沟通投递方式：campus@360.cn职位直达链接：https://360campus.zhiye.com/campus/detail?jobAdId=d7b48154-dd38-45ee-9492-0b4baec1004a工作职责1持续跟踪并深入分析最新的Windows平台漏洞，研究其根本原理、高级利用技术及有效的缓解措施。2研究和复现野外流行的攻击手法、APT攻击中使用的先进技术，特别是针对杀毒软件、EDR等安全产品的绕过技术（如白利用、无文件攻击、内存驻留、EDR盲点等）。3基于研究成果，设计和开发创新的威胁检测模型和主动防御方案，并将其工程化，落地到实际的安全产品中，提升产品的核心检测与防护能力。任职资格1计算机科学、信息安全、网络工程或相关专业本科及以上学历。2精通C/C++编程，熟悉Python等脚本语言，具备扎实的Windows平台开发能力（如Win32 API, Native API）。3熟练掌握x86/x64汇编语言，能够熟练使用IDA Pro, WinDbg, x64dbg等工具进行静态分析和动态调试。4深入理解Windows操作系统内核机制，包括内存管理、进程/线程调度、对象管理、文件系统、驱动模型等。5对主流的漏洞利用技术（如ROP, JOP, 堆利用等）及相应的防御和绕过技术（如ASLR, DEP, CFG bypass）有深入的理解。6 对安全研究抱有浓厚兴趣和热情，具备强烈的自我驱动力、好奇心和优秀的学习能力，能够独立解决复杂技术问题。 加分项（满足以下一项或多项者优先）：7有独立发现并分析过漏洞（有CVE编号者优先）的经验。8有Windows内核驱动开发或内核安全攻防经验者优先。9有反病毒、反外挂、EDR、HIPS等安全产品核心研发经验者优先。10在知名安全会议或在安全社区、个人博客上发表过高质量技术文章者优先。11在CTF竞赛中取得过优异成绩者优先。.lakex-default-theme{--lakex-editor-background:#fff;--lakex-editor-background-primary:#fff;--lakex-editor-background-primary-hover:#EFF0F0;--lakex-editor-background-primary-hover-light:#E7E9E8;--lakex-editor-background-secondary:#FAFAFA;--lakex-editor-background-tertiary:#F4F5F5;--lakex-editor-background-foreground:#fff;--lakex-editor-border-light:rgba(0, 0, 0, 0.04);--lakex-editor-code-background:#0000000f;--lakex-editor-column-background-highlight:#D9EAFC7F;--lakex-editor-icon-secondary:#585A5A;--lakex-editor-selection:rgba(27, 162, 227, 0.2);--lakex-editor-table-bar-active:#2F8EF4CC;--lakex-editor-table-bar-danger:#E4495B5A;--lakex-editor-table-scrollbar-thumb:#00000033;--lakex-editor-text-color:#262626;--lakex-editor-text-body:#585A5A;--lakex-editor-text-caption:#8A8F8D;--lakex-editor-text-disable:#BEC0BF;--lakex-editor-text-link:#117CEE;--lakex-editor-text-link-hover:#5FA8F6;--lakex-editor-border-primary:#E7E9E8;--lakex-editor-card-background-hover:#5FA8F633;--lakex-editor-card-border-hover:#81BBF8;--lakex-editor-card-border-selected:#2F8EF4;--lakex-editor-color-black:#000;--lakex-editor-color-black-f05:rgba(0,0,0,0.05);--lakex-editor-color-black-f08:rgba(0,0,0,0.08);--lakex-editor-color-black-f12:rgba(0,0,0,0.12);--lakex-editor-color-black-f30:rgba(0,0,0,0.30);--lakex-editor-color-black-f65:rgba(0,0,0,0.65);--lakex-editor-color-blue1:#D9EAFC;--lakex-editor-color-blue2:#C0DDFC;--lakex-editor-color-blue3:#81BBF8;--lakex-editor-color-blue4:#5FA8F6;--lakex-editor-color-blue5:#2F8EF4;--lakex-editor-color-blue6:#117CEE;--lakex-editor-color-blue8:#074A92;--lakex-editor-color-blue9:#00346B;--lakex-editor-color-cyan1:#CEF5F7;--lakex-editor-color-cyan9:#004347;--lakex-editor-color-green5:#0BD07D;--lakex-editor-color-green6:#00B96B;--lakex-editor-color-green7:#009456;--lakex-editor-color-grey1:#FAFAFA;--lakex-editor-color-grey2:#F4F5F5;--lakex-editor-color-grey3:#EFF0F0;--lakex-editor-color-grey4:#E7E9E8;--lakex-editor-color-grey5:#D8DAD9;--lakex-editor-color-grey6:#BEC0BF;--lakex-editor-color-grey7:#8A8F8D;--lakex-editor-color-grey8:#585A5A;--lakex-editor-color-grey9:#262626;--lakex-editor-color-orange1:#FDE6D3;--lakex-editor-color-orange9:#663000;--lakex-editor-color-peaGreen1:#E8F7CF;--lakex-editor-color-peaGreen8:#406105;--lakex-editor-color-peaGreen9:#2A4200;--lakex-editor-color-red1:#FBE4E7;--lakex-editor-color-red4:#EA7583;--lakex-editor-color-red5:#E4495B;--lakex-editor-color-red6:#DF2A3F;--lakex-editor-color-red9:#70000D;--lakex-editor-color-theme:#00B96B;--lakex-editor-color-white:#fff;--lakex-editor-color-white-f60:rgba(255,255,255,0.6);--lakex-editor-color-white-f80:rgba(255,255,255,0.8);--lakex-editor-color-white-f90:rgba(255,255,255,0.9);--lakex-editor-color-yellow5:#F3BB2F;--lakex-alert-tips-bar-border:#BEC0BF;--lakex-alert-tips-bar-bg:#D8DAD9;--lakex-alert-tips-background:#EFF0F0;--lakex-alert-tips-border:#E7E9E8;--lakex-alert-info-bar-border:#C0DDFC;--lakex-alert-info-bar-bg:var(--lakex-alert-info-bar-border);--lakex-alert-info-background:rgba(192,221,252,0.5);--lakex-alert-info-border:#81BBF8;--lakex-alert-color1-bar-border:#B5EFF2;--lakex-alert-color1-bar-bg:var(--lakex-alert-color1-bar-border);--lakex-alert-color1-background:rgba(181,239,242,0.5);--lakex-alert-color1-border:#81DFE4;--lakex-alert-color2-bar-border:#C7F0DF;--lakex-alert-color2-bar-bg:var(--lakex-alert-color2-bar-border);--lakex-alert-color2-background:rgba(199,240,223,0.5);--lakex-alert-color2-border:#82EDC0;--lakex-alert-success-bar-border:#DBF1B7;--lakex-alert-success-bar-bg:var(--lakex-alert-success-bar-border);--lakex-alert-success-background:rgba(219,241,183,0.5);--lakex-alert-success-border:#C1E77E;--lakex-alert-warning-bar-border:#F6E1AC;--lakex-alert-warning-bar-bg:var(--lakex-alert-warning-bar-border);--lakex-alert-warning-background:rgba(246,225,172,0.5);--lakex-alert-warning-border:#F5D480;--lakex-alert-color3-bar-border:#F8D6B9;--lakex-alert-color3-bar-bg:var(--lakex-alert-color3-bar-border);--lakex-alert-color3-background:rgba(248,214,185,0.5);--lakex-alert-color3-border:#F8B881;--lakex-alert-danger-bar-border:#F8CED3;--lakex-alert-danger-bar-bg:var(--lakex-alert-danger-bar-border);--lakex-alert-danger-background:rgba(248,206,211,0.5);--lakex-alert-danger-border:#F1A2AB;--lakex-alert-color4-bar-border:#F7C4E2;--lakex-alert-color4-bar-bg:var(--lakex-alert-color4-bar-border);--lakex-alert-color4-background:rgba(247,196,226,0.5);--lakex-alert-color4-border:#F297CC;--lakex-alert-color5-bar-border:#D9C9F8;--lakex-alert-color5-bar-bg:var(--lakex-alert-color5-bar-border);--lakex-alert-color5-background:rgba(217,201,248,0.5);--lakex-alert-color5-border:#BA9BF2;--lakex-label-color0-bg:#F8CED3;--lakex-label-color0-border:#F1A2AB;--lakex-label-color0-text:#70000D;--lakex-label-color1-bg:#F6E1AC;--lakex-label-color1-border:#F5D480;--lakex-label-color1-text:#664900;--lakex-label-color2-bg:#DBF1B7;--lakex-label-color2-border:#C1E77E;--lakex-label-color2-text:#2A4200;--lakex-label-color3-bg:#EFF0F0;--lakex-label-color3-border:#EFF0F0;--lakex-label-color3-text:#262626;--lakex-label-color4-bg:#C0DDFC;--lakex-label-color4-border:#81BBF8;--lakex-label-color4-text:#00346B;--lakex-label-color5-bg:#C0CAFC;--lakex-label-color5-border:#96A7FD;--lakex-label-color5-text:#101E60;--lakex-calendar-blue-line:#117CEE;--lakex-calendar-blue-border:#81BBF8;--lakex-calendar-blue-background:#D9EAFC;--lakex-calendar-magenta-line:#D22D8D;--lakex-calendar-magenta-border:#F297CC;--lakex-calendar-magenta-background:#FBDFEF;--lakex-calendar-green-line:#74B602;--lakex-calendar-green-border:#C1E77E;--lakex-calendar-green-background:#E8F7CF;--lakex-calendar-red-line:#DF2A3F;--lakex-calendar-red-border:#F1A2AB;--lakex-calendar-red-background:#FBE4E7;--lakex-calendar-purple-line:#601BDE;--lakex-calendar-purple-border:#BA9BF2;--lakex-calendar-purple-background:#E6DCF9;--lakex-calendar-yellow-line:#ECAA04;--lakex-calendar-yellow-border:#F5D480;--lakex-calendar-yellow-background:#F9EFCD;}​