今天面试挺好玩的,我妆又白化了,我上班两年都没有这两周化的妆多。
略写写怎么复现分析1Day
有cve编号
大部分漏洞都是有cve编号,cve从提交到有编号到披漏是有一段时间的。
一般提交cve通过git仓库issue,(你可以直接在git仓库issue中搜vul 漏洞名称 ……)所以你直接看项目git issue。如https://github.com/spring-projects/spring-security/issues/11368。
一般如果修复很快的话,会有修复版本代码,你也可以直接从github仓库界面看commit代码修复前后对比
对应commit 如(AntRegexRequestMatcher Optimization · spring-projects/spring-security@7086395 (github.com)以及一般修复代码会提供测试代码在test目录下
具体到某个文件某个类。
或者直接下载有漏洞版本的整个项目代码和修复过后的项目代码到本地,利用对比工具进行对比。(idea有文件对比工具)
这是有源码的,没有源码的就要到处找啦,有一部分可能是历史代码未完全修复,还有的则是新增的。
分析工具
分析工具则挺多,你需要一些分析jar包工具(静态分析)也可以动态调试(加断点)
框架类漏洞,很多时候是某个功能点某个函数代码出现问题,这个功能点又会经过很多次调用才到达我们的系统路由点,不会像应用那样漏洞路径非常明确。这个如果是1Day纯手工分析还是会有点复杂的。中间过程会涉及java的函数重载,复写,反射……你有时候还要找对重载复写以及implements的方法,不然白费劲。
为什么要分析1/nday
-
很多漏洞并没有彻底修复,就像渗透测试一个系统一样,出现一处xss/sql其实还有很大可能性其他地方也存在同样漏洞。(可以捡漏)
-
分析漏洞,才能更好明白exp/poc,可以更全面思考利用。
不过有些框架性质的漏洞确实挺无聊的,要去思考gadget,你还要了解这个框架功能用法你不了解框架功能特性的话可能根本用不起来,也思考不全面关于漏洞利用……
复现分析过程
1.搭建环境
2.复现成功
3.找到漏洞点,国内的项目话,我就会直接找漏洞点所在方法的相关框架,因为往往它会存在同类型漏洞在很多其他项目里,(我真找到了一个小众框架,这里暂不披露,)
4.分析具体漏洞函数的漏洞原因(是注入还是配置还是其他……)
5.从入口开始跟踪到具体漏洞函数
原文始发于微信公众号(天才少女Alpha):怎么复现分析1day
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论