「技术分享」Shiro 权限绕过的历史线(下)

框架、组件漏洞系列4:Apache shiro漏洞汇总 一、Apache Shiro 简介 1、什么是shiro Apache Shiro提供了认证、授权、加密和会话管理功能,将复杂的问题隐藏起来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码。并且在实现此目标时无须依赖第三方的框架、容器或服务,当然也能做到与这些环境的整合,使其在任何环境下都可拿来使用。 Shiro将目标集中于Shiro开发团队所称的“四大安全基石”-认证(Authentication)、授权(Authorization)、会话管理(Session Management)和加. 阅读详情

0×5 CVE-2020-13933

0x5.1 漏洞简介

影响版本: shiro<1.6.0

类型: 权限绕过

其他信息:

这个洞跟CVE-2020-11989有点相似的地方就是就是利用URL解码的差异性来实现绕过。

CVE-2020-13933:Apache Shiro 权限绕过漏洞分析

0x5.2 漏洞配置

这个洞是不会受到Spring的版本限制的。

<dependency>

            <groupId>org.apache.shiro</groupId>

            <artifactId>shiro-web</artifactId>

            <version>1.5.3</version>

        </dependency>

        <dependency>

            <groupId>org.apache.shiro</groupId>

            <artifactId>shiro-spring</artifactId>

            <version>1.5.3</version>

        </dependency>

Shiro配置,这个洞也是有限制的只能是ant的风格为单*号才可以:

map.put("/hello/*", "authc");


    @ResponseBody
    @RequestMapping(value="/hello" +
            "" +
            "/{index}", method= RequestMethod.GET)
    public  String hello1(@PathVariable String index){
        return "Hello World"+ index.toString() + "!";
    }

0x5.3 漏洞演示

 

 

访问302,然后poc:

/hello/%3bluanxie

 

看到这个POC的时候,我当时就觉得我前面分析两个洞的时候,是不是漏了什么关键点没去分析。

然后最让我头疼的的是,为什么需要对;要编码才能利用成功,下面我们通过分析来复盘我们前两次学习过程出现的问题。

0x5.4 漏洞分析

断点依然是在上一次的修补点:

org.apache.shiro.web.util.WebUtils#getPathWithinApplication

 

这里我们逐步跟进去,上一次我没跟removeSemicolon, 因为从函数名这个其实就是Shiro一直以来的操作,就是去除;号后面的内容,然后normalize,这个并没有很大问题。

然后函数返回的结果是这个:

 

本来应该获取到uri的是/hello/,然后因为最早的那个shiro-682的洞,所以会执行去掉末尾的斜杆。

if (requestURI != null && !"/".equals(requestURI) && requestURI.endsWith("/")) {

                requestURI = requestURI.substring(0, requestURI.length() - 1);

            }

变成了:/hello

首先通过,Iterator var6 = filterChainManager.getChainNames().iterator()获取了我们定义的filter,进入do循环逐个取值给pathPattern

 

其实都没必要去看这个算法怎么做匹配的,因为/hello/*本来就不会匹配/hello,

那么这样,如果是这样呢,map.put("/hello/", "authc");,emm,在取出来进行匹配的时候,

 

就会被去掉/,那么我来多几个呗。

map.put("/hello//", "authc");

稍微绕过了

 

这个时候我们就可以回头去读一下Shiro的匹配算法了。

首先是如果pattern和path开头不一样直接false

然后就是StringUtils.tokenizeToStringArray分割字符串得到数组

然后一个循环,比较,如果出现某数组字符串不匹配,除开**就会返回false

只要没有**出现的话,且字符串数组=1,就没那么复杂的解析过程,直接返回

pattern.endsWith(this.pathSeparator) ? path.endsWith(this.pathSeparator) : !path.endsWith(this.pathSeparator);

如果pattern是以/结尾的话,那么是 True,返回path.endsWith(this.pathSeparator),这个时候path不是以/结尾的,所以最终也不匹配。

如果是/*的话,字符串数组>1,

那么最终会进入

这个过程说明,/hello/* 可以匹配/hello/,但是没办法匹配到/hello,然后shiro又做了去除/处理,emmm,根本不可能构造出/hello/,构造出来也没啥可用的

但是如果是,/hello/**,这里就不返回false,直接跳到下面了,最终会返回True,没办法绕过。说明/hello/**可以匹配到/hello

其实来到这里我们就明白了,第一步通过%3b解码成;,然后以前的洞删掉了/,导致了bypass Shiro。

如果我们不用%3b,而是直接

 

那么;直接会被request.getServletPath()处理掉,从而变成了/hello/aa,被/hello/**这种ant所匹配,导致第一层都没办法绕过。(这个其实就是cve2020-1957的绕过思路呀!肯定是没办法的呀)

0x5.5 漏洞修复

说实话,关于这个洞,我当时思考的修复方式是,好像只能是去屏蔽%3b这个字符了,感觉真的很无奈。

diff:https://github.com/apache/shiro/compare/shiro-root-1.5.3…shiro-root-1.6.0

发现确实新增InvalidRequestFilter.java,但是具体作用不知道在哪里起的,

 

然后在这个文件被调用:

support/spring/src/main/java/org/apache/shiro/spring/web/ShiroFilterFactoryBean.java

这个文件新增了一个/**匹配没有设置filter类型,用于解决失配的时候还是可以调用默认的过滤器

 

然后输入特殊字符的时候,过滤器会进行过滤,关于是如何进行过滤的,值得详细写一篇文章,这里我们只要知道它的修复方式,是做了特殊字符,存在就抛出400就行了。

return !this.containsSemicolon(uri) && !this.containsBackslash(uri) && !this.containsNonAsciiCharacters(uri);

 

0×6 CVE-2020-17510

 

 

0x6.1 漏洞简介

影响版本: shiro<1.7.0

类型: 权限绕过

其他信息:

中风险,需结合Spring使用环境,危害偏低一点

0x6.2 漏洞分析

diff:https://github.com/apache/shiro/compare/shiro-root-1.6.0…shiro-root-1.7.0

改动:

 

这个洞我发现他增加了request.getPathInfo的方式检测字符,而在Spring-boot默认这个值是空,但是在其他情况,这个值可控的话,我们可以在这里插入;和..实现绕过,结合前面的分析,可以知道URI是由request.getServletPath + request.getPathInfo得到的,所以是可以去绕过的,不过由于这个洞鲜少人讨论,作者也没去公开,这个利用方式研究价值很低,笔者对此没有很大兴趣,所以就没去折腾场景来利用, 欢迎其他师傅感兴趣地话继续研究。

这些CVE的形成原因,最后再对成因做一个总结。

 

0×7 CVE-2020-17523

 

 

0x7.1 漏洞简介

影响版本: shiro<1.7.0

类型: 权限绕过

其他信息:当Apache Shiro与Spring框架结合使用时,在一定权限匹配规则下,攻击者可通过构造特殊的 HTTP 请求包绕过身份认证。

0x7.2 漏洞配置

<dependency>

            <groupId>org.apache.shiro</groupId>

            <artifactId>shiro-web</artifactId>

            <version>1.6.0</version>

        </dependency>

        <dependency>

            <groupId>org.apache.shiro</groupId>

            <artifactId>shiro-spring</artifactId>

            <version>1.6.0</version>

        </dependency>

这个漏洞我建议spring-boot用2.4.5的,这个版本默认会开启全路径匹配模式。

当Spring Boot版本在小于等于2.3.0.RELEASE的情况下,alwaysUseFullPath为默认值false,这会使得其获取ServletPath,所以在路由匹配时相当于会进行路径标准化包括对%2e解码以及处理跨目录,这可能导致身份验证绕过。而反过来由于高版本将alwaysUseFullPath自动配置成了true从而开启全路径,又可能导致一些安全问题

0x7.3 漏洞演示

通杀版本:/hello/%20

 

高版本默认支持:/hello/%2e/ 或者 /hello/%2e

 

其实这个洞,基于之前的%3B实现绕过的思路,其实很容易想到去Fuzz下的,看看除了%3B是不是还有其他字符可以在Shiro中造成失配,而Spring-boot可以正常匹配的,都不用去分析具体代码的,就可以拿到的一个ByPass。

 

但是这两种绕过方式其实非常不同的,出现在了两个不同地方的错误处理方式。

0x7.4 漏洞分析

第一种绕过方式分析:

断点打在org.apache.shiro.web.util.WebUtils#getPathWithinApplication

 

这里处理结果和前面一样,解码了所以变成了空格。

 

跟进这里看匹配,

 

很明显,这里和上次分析结果是一样的,最终还是因为*返回了false,否则True。

那么为什么会这样呢?那为什么/hello/aa这样就不行呢? 其实就是StringUtils.tokenizeToStringArray没有正确分割字符串导致的?%20 应该是被当做空字符了,导致分割的数组长度=1,就会进入那个return false.

 

所以这里成功Bypass了Shiro的检测,最后让我们来看下Spring-boot是怎么处理的

断点:org.springframework.web.servlet.DispatcherServlet#doDispatch

逐步跟到:org.springframework.web.servlet.handler.AbstractHandlerMethodMapping#lookupHandlerMethod

 

这里是根据lookpath进行匹配,没有直接被找到

 

下面进入用RequestMapping注册的列表来匹配:

 

这里继续进入匹配:

 

 

 

最终这个org.springframework.util.AntPathMatcher#doMatch进行了解析,和之前算法差不多,但是

this.tokenizePath(path)返回的结果是2包括%20,所以可以匹配成功,最终解析到了/hello/{index}

 

第二种绕过方式分析:

这个其实在分析cve-2020-13933的时候,我就考虑过这种方式去绕过(部分原理相同,利用默认去掉/造成的失配),然后当时实践了,由于采取了低版本的spring-boot,默认没开启全路径匹配模式,导致我当时没成功。

首先说一下网上有些文章,分析的时候不够全面,但是又概括性总结了原因,有一定的误导,这里我列出我的debug结果

/hello/%2e->request.getServletPath()->/hello/

/hello/%2e/->request.getServletPath()->urldecode->/helo/

/hello/%2e%2e ->request.getServletPath() -> urldecode->/

也就是说,request.getServletPath()针对%2e会先解码,然后对此进行处理。

所以洞出现的问题是:

request.getServletPath() 处理这种URL时候会返回/hello/,然后shiro默认会去掉最后/,然后再进行匹配,导致了绕过。

0x7.5 漏洞修复

diff:https://github.com/apache/shiro/compare/shiro-root-1.7.0…shiro-root-1.7.1

 

这个处理就可以避免空白字符没被正确分割出来的问题,解决了第一种绕过问题。

 

然后可以看到这里为了避免%2e,这里首先去掉了之前shiro-682,为了修补末尾/绕过问题,做的一个去掉默认路径/的操作。

然后后面写了个if/else的判断

 

先不去掉/来做匹配,如果匹配失败,在考虑去掉/,这样考虑是基于以前的问题和现在的问题共同考虑

首先以前是 /hello被/hello/实现了绕过,那么在做匹配的时候,那么第一次匹配失败,然后进入了第二个去掉/匹配成功

现在是/hello/*被先/hello/默认去掉/->/hello实现了绕过,那么在做匹配的时候,第一次先保留/hello/可以成功被/hello/*匹配。

 

0×8 总结

漏洞的最基本原理,通俗来说就是,一个原始恶意构造的URL ,首先要绕过Shiro的判断,然后被Spring解析到最终的函数,也就是Shiro解析URL和Spring解析URL的差异性。然后多次Bypass都是针对实现解析的环节存在一些问题导致。

行文颇长,若有不当之处,多多包涵。

推荐阅读:牛掰了!阿里大佬居然把Nmap使用技巧总结的这么好 马云看了都说叼

Apache Shiro权限绕过漏洞深度剖析:从CVE-2020-1957到双编码绕过实战 在Web应用安全领域,权限控制是保障系统安全的核心机制之一,其原理在于通过过滤器链对请求路径进行匹配和拦截。然而,当不同组件对同一URL的解析逻辑存在语义差异时,便可能产生权限绕过漏洞。这类漏洞的技术价值在于揭示了安全边界模糊性带来的风险,常出现在Shiro、Spring Security等主流安全框架与Web容器(如Tomcat)的协作场景中。具体到Apache Shiro框架,其路径匹配器(AntPathMatcher)与Spring MVC的路径解析器在处理特殊字符(如分号、空格)及编码规则时存在认知 阅读详情

相关推荐

JeecgBoot高危漏洞24小时极速修复实战:Fastjson、Shiro、Log4j2攻坚

在软件开发领域,依赖管理是保障应用安全与稳定的基石。其核心原理在于通过统一管控第三方库的版本,避免引入已知漏洞组件,从而构建安全的软件供应链。对于使用JeecgBoot这类低代码平台的企业级项目而言,高效管理依赖、及时修复漏洞具有极高的技术价值,直接关系到系统的抗攻击能力和业务连续性。典型的应用场景包括应对突发安全扫描告警、进行合规性升级以及构建常态化的安全开发流程。本文将聚焦于JeecgBoot项目中常见的**Fastjson反序列化漏洞**与**Apache Shiro权限绕过漏洞**的应急处理,详细阐

weixin_29327977的博客 290

CVE-2020-13933: Apache Shiro 权限绕过漏洞分析

360CERT [三六零CERT](javascript:void(0)???? 今天 报告编号:B6-2020-092201 报告来源:360CERT 报告作者:360CERT 更新日期:2020-09-22 0x01 漏洞简述 2020年08月18日, 360CERT监测发现 Apache Shiro 发布了 Apahce Shiro 权限绕过 的风险通告,该漏洞编号为 CVE-2020-13933,漏洞等级:高危,漏洞评分:8.0。 Apahce Shiro 由于处理身份验证请求时出错 存在 权限绕

爱国小白帽 6650

Jeecg-Boot积木报表权限绕过漏洞深度剖析与修复指南

权限控制是Web应用安全的核心机制,其原理在于通过身份认证与授权校验,确保用户只能访问其被许可的资源。在基于角色的访问控制(RBAC)模型中,权限校验的缺失或逻辑缺陷极易引发越权访问漏洞,此类漏洞在OWASP Top 10中持续占据重要位置,对数据安全构成严重威胁。从技术价值看,深入理解越权漏洞的成因,能有效指导开发者在服务端实施强制、全面的校验策略,遵循“默认拒绝”原则,从而构建更稳固的应用安全防线。在低代码开发平台等快速构建的业务系统中,内置组件的权限校验逻辑往往是安全审计的关键点。本文以企业级应用广泛

weixin_26642481的博客 307

shiro权限绕过

shiro权限绕过原理解析加漏洞复现!

m0_67284865的博客 1428

ShiroAttack2实战指南:自动化检测与内存马注入攻防解析

在Java Web安全领域,反序列化漏洞是影响广泛的高危安全问题,其核心原理在于攻击者通过构造恶意序列化数据,触发应用执行非预期代码。这类漏洞的技术价值在于能够绕过常规安全边界,直接获取服务器控制权,常被用于权限提升和持久化攻击。Apache Shiro框架的RememberMe功能因使用硬编码密钥和存在反序列化缺陷,成为该漏洞的典型应用场景。针对这一痛点,自动化工具ShiroAttack2应运而生,它集成了密钥爆破、漏洞验证和内存马注入等模块,通过智能探测和多线程优化,大幅提升了攻击效率。工具采用Filt

weixin_33898876的博客 436

JeecgBoot安全漏洞深度剖析:从低代码平台特性到SRC实战攻防

在软件开发领域,低代码开发平台通过可视化配置和代码生成,极大地提升了企业级应用(如OA、CRM、ERP系统)的构建效率。其核心原理在于将通用功能模块化,通过模板引擎和预置组件快速生成业务代码。然而,这种追求便捷的特性,若与薄弱的安全意识相结合,便会引入显著的安全风险,例如未授权访问和SQL注入。这些漏洞的技术价值在于,它们往往不是框架本身的致命缺陷,而是默认配置不当、依赖库漏洞与开发者对生成代码的误用共同作用的结果,最终在权限控制、数据交互等关键层面形成攻击面。在SRC(安全应急响应中心)漏洞挖掘和渗透测试

weixin_30530339的博客 380

Apache Shiro反序列化漏洞CVE-2016-4437:从加密绕过到远程代码执行实战解析

Java反序列化漏洞是Web安全领域的经典威胁,其核心原理在于Java序列化机制会无条件执行反序列化数据中的指令。攻击者通过构造恶意的序列化对象,可在目标服务器上触发任意代码执行。这类漏洞的技术价值在于其利用链的通用性,常出现在广泛使用的Java框架和组件中。在Apache Shiro框架的“记住我”功能中,设计者通过AES加密保护序列化数据,但CVE-2016-4437漏洞巧妙地利用Padding Oracle攻击,在无需知晓服务端密钥的情况下,即可绕过加密验证,将恶意序列化载荷注入系统。该漏洞的利用过程

weixin_34378969的博客 314

从脚本小子到体系化猎人:现代漏洞挖掘的深度对抗框架

在网络安全领域,漏洞挖掘的本质是攻击者与防御体系之间的持续对抗。其核心原理在于识别并利用软件系统在设计、实现或配置上的缺陷,这些缺陷可能存在于代码逻辑、协议交互或业务流程中。从技术价值看,有效的漏洞挖掘不仅能发现潜在的安全风险,更能推动安全防御从被动修补转向主动构建。在应用场景上,它广泛覆盖Web应用、API接口、业务逻辑乃至底层协议。随着现代应用复杂度的提升和防御链条的完善,传统的自动化扫描(工具扫洞)已难以触及深层漏洞,这要求测试者必须转向体系化、深度化的手动挖掘与逻辑分析。本文正是围绕这一转变,深入探

weixin_30279315的博客 413

BurpSuite插件实战指南:从Shiro检测到验证码绕过,这6款插件让渗透测试效率翻倍

本文详细介绍了6款BurpSuite插件的实战应用,从Shiro检测到验证码绕过,全面提升渗透测试效率。涵盖被动检测、信息收集、403绕过和验证码破解等核心场景,提供环境配置、插件协同和疑难排错等实用技巧,帮助安全工程师构建自动化工作流。

weixin_28720573的博客 358

2025年SRC漏洞挖掘实战指南:从资产测绘到高危漏洞深度利用

在网络安全领域,漏洞挖掘是识别和利用系统安全缺陷的核心技术。其原理在于通过主动或被动方式,探测应用、系统或网络中的潜在弱点,这些弱点可能源于代码缺陷、配置错误或逻辑设计问题。掌握系统性的漏洞挖掘方法具有极高的技术价值,不仅能有效评估和提升系统安全性,也是安全研究员将技术能力转化为实际成果的关键路径。在众多应用场景中,针对企业安全应急响应中心(SRC)的漏洞挖掘尤为典型,它要求研究者具备从情报收集、攻击面梳理到漏洞深度利用的完整工程化能力。本文聚焦于SRC挖掘中的**资产发现与测绘**以及**高危漏洞专项挖掘

congran6617的博客 717

漏洞挖掘高手方法论:从信息收集到实战技巧的全流程解析

漏洞挖掘是信息安全领域的核心技术之一,其本质是发现软件、系统或协议中因设计缺陷或实现错误导致的安全弱点。从原理层面看,漏洞挖掘遵循系统化方法论,核心在于打破数据与代码的边界,通过静态分析与动态测试相结合的方式识别潜在风险。在技术价值上,它不仅是攻击手段,更是提升系统安全性的重要途径,能够帮助企业发现并修复潜在威胁。应用场景广泛覆盖Web应用、网络协议、移动端及内网渗透等多个领域。本文以实战视角,深入剖析了信息收集、攻击面建模、深度分析等关键阶段,并重点介绍了SQL注入、逻辑漏洞等常见漏洞类型的挖掘技巧,为安

weixin_30376509的博客 422

2025年渗透测试面试题总结-26(题目+回答)

本文汇总了安全领域常见问题及解决方案,涵盖中间件解析漏洞、MySQL密码存储机制、系统加固、CDN绕过技术、端口扫描、域控查找、CSRF防御、渗透测试漏洞利用、Shiro漏洞检测及Weblogic权限绕过等实用技术要点。内容聚焦实战技巧和防御策略,为安全从业者提供技术参考。(99字)

soc的博客 1439

宏景HCM系统漏洞复现:从SQL注入到权限获取的实战解析

在Web应用安全领域,SQL注入和文件上传漏洞是两类基础且危害巨大的安全风险。SQL注入的原理在于应用程序未对用户输入进行充分过滤,导致攻击者能够将恶意SQL代码插入数据库查询中,从而窃取、篡改或破坏数据。文件上传漏洞则源于服务端对上传文件类型、内容及路径的校验不足,使得攻击者可上传恶意脚本(如WebShell)获取服务器控制权。掌握这些漏洞的挖掘与利用技术,对于企业构建纵深防御体系、提升安全运维能力具有重要价值。尤其在人力资源管理系统(HCM)这类承载大量敏感数据的业务场景中,漏洞的实战复现能帮助安全人员

weixin_34163553的博客 402

现场大屏互动系统后台代码审计:从高危漏洞挖掘到实战加固指南

代码审计是保障Web应用安全的核心技术之一,其原理是通过人工审查与自动化工具相结合,对源代码进行系统性检查,以识别潜在的安全缺陷。这项技术的价值在于能主动发现并修复逻辑漏洞、注入攻击等风险,避免数据泄露、服务中断等安全事件。在会议、营销等实时互动场景中,后台系统的安全性直接关系到活动成败与核心数据资产。本文聚焦于**现场大屏互动系统**这类典型应用,深入剖析其后台在**权限绕过**、**业务逻辑**及第三方集成中的常见漏洞模式,并提供从审计方法到修复方案的完整实践路径,为开发与安全团队构建有效防线。

weixin_34234721的博客 421

BurpSuite被动扫描插件组合实战:五款插件协同提升漏洞挖掘效率

被动扫描是Web安全测试中的关键技术,它通过监听和分析网络流量,在不主动发送探测请求的情况下,识别潜在的安全风险。其核心原理在于对HTTP请求和响应进行实时解析与模式匹配,基于预定义规则或特征库发现敏感信息泄露、配置错误、已知漏洞特征等。这项技术的价值在于能够以极低的侵入性,在测试早期快速发现攻击面,为后续深度测试提供精准方向。在实际应用场景中,被动扫描常与代理工具结合,用于资产发现、漏洞初筛和持续监控。本文聚焦于BurpSuite平台,深入探讨如何通过HaE、AuthMatrix、BurpShiroPas

weixin_29323365的博客 354

CVE-2020-13933 靶场: shiro 认证绕过漏洞.zip

靶场,是指为信息安全人员提供实战演练、渗透测试和攻防对抗等训练环境的虚拟或实体场地。在不同的领域中,靶场扮演着重要的角色,尤其是在网络安全领域,靶场成为培养和提高安全专业人员技能的重要平台。 首先,靶场为安全从业者提供了一个模拟真实网络环境的平台。通过构建类似实际网络的拓扑结构、部署各种安全设备和应用,靶场可以模拟出多样化的网络攻防场景。这使得安全人员能够在安全的环境中进行实际操作,全面提升其实战能力。 其次,靶场是渗透测试和漏洞攻防演练的理想场所。在靶场中,安全专业人员可以模拟攻击者的行为,发现系统和应用的漏洞,并进行渗透测试,从而及时修复和改进防御机制。同时,这也为防御方提供了锻炼机会,通过对抗攻击提高防御能力。 靶场的搭建还促进了团队协作与沟通。在攻防对抗中,往往需要多人协同作战,团队成员之间需要密切配合,共同制定攻击和防御策略。这有助于培养团队合作意识,提高协同作战的效率。 此外,靶场为学习者提供了一个安全的学习环境。在靶场中,学生可以通过实际操作掌握安全知识,了解攻击技术和防御策略。这样的学习方式比传统的理论课程更加生动直观,有助于深化对安全领域的理解。 最后,靶场也是安全社区交流的平台。在靶场中,安全从业者可以分享攻防经验,交流最新的安全威胁情报,共同探讨解决方案。这有助于建立更广泛的安全社区,推动整个行业的发展。 总体而言,靶场在信息安全领域具有重要地位,为安全专业人员提供了实战演练的机会,促进了团队协作与沟通,为学习者提供了安全的学习环境,同时也是安全社区交流的重要平台。通过靶场的实践操作,安全从业者能够更好地应对不断演变的网络威胁,提高整体的安全水平。

2025年SRC漏洞挖掘实战:从信息收集到报告撰写的精准狩猎指南

在网络安全领域,漏洞挖掘是评估系统安全性的核心实践。其基本原理在于利用信息不对称,通过系统化的方法发现软件或网络中的设计缺陷与安全弱点。这项技术的价值在于主动识别风险,防患于未然,是构建纵深防御体系的关键环节,广泛应用于渗透测试、安全众测(如SRC)和红蓝对抗等场景。随着防护体系智能化,传统的广谱扫描效率降低,现代漏洞挖掘更强调精准的“狩猎”思维。这要求安全人员像猎人一样,深入理解目标资产与业务逻辑,通过立体化的资产测绘、API纵深探测及对第三方组件脆弱性的分析,构建高效的攻击面。本文聚焦于SRC漏洞挖掘,

weixin_30471561的博客 526

【OCCT】第3讲 OpenCasCade&VTK实现三维建模Demo

本文分享OpenCasCade&VTK共同实现三维建模Demo,希望对各位小伙伴有所帮助!1. 新建Visual Studio工程新建空项目添加main.cpp添加main函数2. 配置OpenCasCade & VTK 库配置包含路径:配置库文件:添加链接库:添加运行环境:注意:VTK库的版本要与编译OpenCasCade库时选择的版本一致,否则会出错!

qq_40041064的博客 781
上一篇: 爆肝!阿里P8用4个月整理出Linux 应急响应手册(强烈推荐收藏!)
下一篇: 朋友是阿里P8 把他推荐的面试手册刷完后 我终于进了奇安信(泪目)
AI小模型
博客等级 码龄6年 6863粉丝 487原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值