深度对话,解锁0day挖掘赛道宝藏选手
左手抱箱0day走,右手牵个女朋友,今天这位大佬,简直就是网安界的'成功人士'!自带量产0day的buff,他在这个src冷门赛道里几乎没有对手。
今天,就让我这个互联网嘴替来帮大家问问关于海神的成长之路,感受技术改变命运的超燃现场!
远海
国内某知名教育平台安全负责人
0day挖掘赛道头部玩家
顺丰安全应急响应中心年榜Top3 教育漏洞报告平台(EDUSRC)总榜Top1,连续三年提交Top1 教育行业攻防大赛连续三届Top1攻击队 教育漏洞报告平台(EDUSRC)管理员 各平台0day奖金累计超百万
哈喽师傅您好呀,很开心能邀请到您参与本期访谈,请先自我介绍一下吧~
Hello大家好,我是远海,一名00后网络安全从业者,目前主要研究方向是WEB安全、云安全,很开心接受这次采访!
师傅为什么起名叫“远海”呀?
远海这个ID我已经用了很久,记得从高中起就开始使用这个昵称了。因为从小在沿海城市长大,对海的深度和广度充满了敬畏和喜爱。
已找到与大佬的唯一共同点:喜欢海hhhhh(其它都触不可及)
您是科班出身吗?从什么时候就对信息安全领域产生兴趣的?
并非科班出身,正式接触网络安全领域是在大一的时候。在这之前我只不过是一位平平无奇、唯唯诺诺、如履薄冰的小码农,曾梦想通过努力工作,走上人生巅峰迎娶白富美,然而这样的美好生活被一位叫Tigger(可能“考公”了,QQ都没动过)的黑客打破。
我辛辛苦苦发布了数十篇学习笔记,造福数位从业者的博客被黑了!!!嚣张的黑客居然改了博客主页“XXX路过”,甚至留下QQ 号码!如此炫酷的技术,18岁懵懂少年根本把持不住!加上大佬QQ后一顿跪舔,可惜美好总是不长久,教会使用SQLmap让我成为脚本小子后,便消失不见。好在自己后续沉迷于这种技术,翻阅了很多书籍以及视频资料后,技术也有了不少提升。但还是想问下当初那位大佬,“Are You Ok?”
hhh好有趣的一段往事呀,Tigger大佬你看到了嘛!(在线呼叫)如今“脚本小子”已经成为万人瞩目的“漏洞猎手”啦 !
据说您目前0day提交奖金超百万,可否分享一下自己在学习挖掘0day漏洞方面的经验和心得?
代码审计是开发技术的分支,要想熟练地挖掘漏洞,肯定离不开较好的开发基础以及对程序结构的理解能力。建议初学者可以先学习Web程序开发,这块资料比较多。在有代码基础的情况下后期转Web安全也是比较容易的。
我是因为之前学习的是开发相关的技术,具备一定的代码阅读能力,这使得我能够快速掌握漏洞原理。随后,通过阅读大量代码并深入理解各种Web应用的架构,不断积累经验,能够迅速分析应用可能存在问题的功能点。此外,也积极复现和学习最新的漏洞技术,分析和复现学习漏洞原理,将这些技术应用到自己的漏洞挖掘过程中。最后,也需要持续运营和维护自己的技术栈,保持技术的更新和提升。
迄今为止,您挖过印象最深的漏洞是什么?
随着开发人员技术水平的提升,以及安全框架的引入,现在挖漏洞还是比较难的。印象最深的是挖掘到了某个中间件的任意文件下载漏洞吧,虽然影响范围小了点,但强在通杀,也帮助我在不少攻防演练项目中直接获取到了系统的运行代码,从黑盒视角变为白盒视角,攻击面更广了。
您认为挖漏洞最重要的是什么?运气在这其中占了多少?
在漏洞挖掘过程中,大多数情况下其实是一个费时的体力活。长时间的零产出会逐渐消耗意志力,因此乐观的心态和坚定的意志显得尤为重要。在这过程中,我认为运气占了4成的比例,而成功更多取决于我们的努力和坚持。
下面重点来了!替想学的师傅们请教下,你在进行0day挖掘的时候是怎么个流程和思路呢?(→_→)
好家伙,其他师傅不会跟你说的大实话,来我这偷师了是吧,留条活路吧铁子!w(゚Д゚)w
来都来了,也准备好倾囊相授了。以Java为例,根据我多年的攻防演练经验,首先,当我拿到一套源代码时,我会优先考虑这套代码在本地能否运行。由于在实际攻防演练中,我们通常拿到的是编译后的代码,往往缺少一些配置文件或数据库结构信息,使得在本地运行变得困难。因此,大多数情况下,我们需要在静态环境下进行代码审计。这时,我们需要分析程序结构(如使用的框架:Spring Boot、Spring MVC、Struts2等)、权限鉴别方式(Filter、Interceptor)、用户会话存储方式(Session、JwtToken、Redis)等。当了解这些信息后,就能够了解在未登录情况下可以访问的接口,优先对这些接口进行审计。在代码审计过程中,要形成Source和Sink的概念。Source是输入源,如request.getParameter,而Sink则是漏洞触发点,如文件写入的FileOutputStream。我们需要观察从Source到Sink或Sink到Source的过程中,参数内容是否可控。随后我们在继续观察需要登录后的接口,Filter、Interceptor是否存在逻辑缺陷可以被绕过,当前系统是否支持注册,我们可以注册一个账户来获得更多的接口访问权限。当然,安全发展到现在,一些较为简单的漏洞已经被发现修复了,更多的还是一些组合利用,如文件上传做了白名单,我们只能上传一些jpg等文件,但我们仍然可以找一些文件移动功能,尝试更改其文件名,将其修改为可执行文件。
此类组合链路比较多,如下:
1.开放的注册接口+后台文件上传
2.SSO认证缺陷+后台文件上传
3.Java中使用不安全的鉴权方法(getRequestURI) 或 低版本shiro 配合后台接口
4.Spring MVC 低版本配合Spring Security
要在实际攻防演练中快速发现这些组合问题,更多的还是积极的去复现和学习最新的漏洞,丰富自己的安全知识。
哇!真真倾囊相授了,感觉我都要学会了哈哈哈!那关注哪些点更容易出货呢?
目前,代码审计的攻击思路比较广泛,从程序自身的代码逻辑问题到第三方供应链,都存在较广的安全风险。审计过程中可以关注以下几点:
1. 程序自身代码的逻辑问题(如SQL注入、文件上传漏洞等);2. 第三方供应链安全(如低版本的FastJson、Log4j等);3. 框架安全(如Spring Boot、Shiro、Struts2等框架的历史漏洞);4. 权限鉴别方式(如Filter、Interceptor是否存在逻辑缺陷)等。
已经蠢蠢欲动了!对于像我这种新手,有哪些好用的工具推荐吗?
分享自用工具,这里主要是分为四块吧:反编译工具、自动化工具、辅助工具、分析工具。
首先需要了解一些反编译工具。这些工具可以将编译后的文件(如 Java 的 class 文件或 ASP.NET 的 dll 文件)反编译成可阅读的源代码。例如,Java 的 JD-GUI 和 ASP.NET 的 DnSpy 就是常用的反编译工具。当然,反编译过程中可能会遇到代码混淆的问题,导致反编译结果不完全准确。这时可以借助一些反混淆工具, 如 ASP.NET 的 de4dot 和 PHP 的 EasyToYou 来解决混淆问题。
接下来是一些自动化工具,虽然这类工具的效率可能不是很高,但它们能帮助我们详细了解程序的架构并验证漏洞的存在。例如,一些静态代码扫描工具可以帮助初学者了解漏洞成因并指出需要关注的代码部分。虽然这类工具误报率较高,但仍然有助于学习和发现漏洞。经典工具包括 RIPS 和 Cobra,高级工具如 CodeQL 则基于抽象语法树(AST)进行分析,可以非常有效的减少误报率。
辅助工具如 IntelliJ IDEA、PyCharm 和 Visual Studio Code 等代码编辑器能帮助我们在本地编写漏洞验证的 demo,验证漏洞的真实性和可能存在的问题。
此外,还有一些运行时分析工具,如阿里巴巴开发的 Arthas,可以在程序运行时获取进程信息,进一步辅助漏洞分析和调试。
以上工具就是我自用的比较好用的工具,目前互联网上都有比较成熟的中文使用教程,学习起来也相对比较容易,遇到难题可以翻阅官方的使用文档进行进一步学习,当然除了一些工具的使用,更多的还是依靠自身过硬的水平。
记笔记中。。。
学习是个漫长的过程,你觉得自己技术提高最快的是什么时候?
当我学会了自己独立探索学习的时候,是真正技术突破提高的转折点。
刚开始学习网络安全时,我和多数人一样,渴望大佬们能教自己厉害的技术,不断请教他们。然而,现实是没有人会无条件教你,除非你也能提供相应的回报。这让我明白,最重要的是培养自学能力,主动寻找资源和解决问题。
你是怎么分配生活、工作和挖洞的呢?
hh以前没有女朋友的时候,大多数时间都花在学习和漏洞挖掘上。网络安全领域非常广泛,需要持续不断的学习。不过,现在已经脱单了,所以会抽出时间回归生活,平衡工作和个人生活。
猝不及防吃了一把狗粮...
00后能达到目前的水平,已经非常优秀了!谈谈目前的个人职业规划吧~
个人的职业规划并不是很具体,计划总是赶不上变化,所以更喜欢给自己定一些阶段性的计划,也时常监督自己有没有按照既定计划发展。
有什么建议给新手白帽以及刚毕业想从事本领域的学生?
对于新手白帽来说,首先要打好网络安全的基础,掌握常见的漏洞类型和攻击手法,积极参与一些CTF比赛。保持对新技术和漏洞的好奇心,持续学习,阅读漏洞报告和分析文章。要保持乐观心态和坚定意志,接受零产出的情况,调整方法和策略。
对于刚毕业的大学生,由于安全这行业比较看重项目经历和技术能力,刚毕业想找一份相关工作可能比较难,需要花费大量时间去系统性的学习。因此如果想从事本领域,可以尽早规划。
感谢远海师傅的经验分享,期待您在技术道路上坚持不懈,勇攀高峰~
最好的种树是十年前,其次是现在。大家顶峰相见!
·END·
从一名对黑客技术充满好奇的普通大学生,到成为一名专注于WEB和云安全的网络安全专家,他的成长之路充满了挑战和机遇。从代码基础到深入挖掘漏洞,每一步都充满了实战和思考。他的挖洞秘笈并非神秘,而是对知识的执着追求和永不满足的精神。
无论起点如何,只要有恒心、毅力和不断学习的态度,都能在信息安全的海洋中找到属于自己的深度和广度。
球分享
球点赞
球在看