开始
一个多月前,我决定暂时结束自己宽泛的学习模式,转而进入”集中优势兵力,各个歼灭敌人“的状态。首先重新征战java大陆。为什么叫重新呢,因为去年的3 4 月我就已经开始接触java安全的学习,当然,学得并不好,很多东西只知其然,不知其所以然,但只知道最后的结果,不了解中间详细过程,因此到了实战就不会用。所以这次的目标很明确,那就是把所有知识点的所有细节搞懂。
我最初拟的学习路线:
1、内存马,RMI,JNDI,等等。这部分弥补我漏掉的基础。
2、各种知名反序列化链。这部分锻炼我看代码和debug的能力。
3、自动化工具使用:codeql,tabby。先学习如何使用,因为总有一天要靠自己独立挖掘的。
4、再后面的还没有想好。
那么,就开始吧。
原则
学习过程中,我主要遵循这个原则:学习别人文章之前必须要有自己的思考。比如分析一条链,如果不知道如何开头,那么就瞄一眼别人的文章,看看如何开头,然后自己往后跟进。或者是看别人的sink点,自己往前分析。总而言之,一定先跟着自己的思路走,走不通了才看文章,目的就是逐步减少对参考的依赖。
比如这个,大部分都是靠自己分析的,尽管花费很长时间,但收获颇丰。
反刍
都说实践是检验真理的唯一标准,学了刚好20天,2月23号,刚好hgame有两道Java给我开刀。其中有一个考点JRMP。嘿,这玩意学RMI时碰过,但现在发现我并没有区分开和RMI到底是什么关系。于是回去RMI复习一遍,理清了RMI和JRMP的关系。因此也是顺利地接出题来了。
这便是从实践到认识,再从认识到实践,循环往复,螺旋上升。
检验
DubheCTF 2024
基本上算自己解出,一次全方位的对我之前学习积攒的经验、技巧的考察。解出来后,说明自己的学习是有成效的,心情十分激动。
AliyunCTF 2024
V&N与W&M父子队联合。
两题Java,虽说都不是主力,但至少也有输出。其中一题,第二次接触jdk17,并不熟练,主要由pop发力。我则在后半部分在codeql方面给他提供帮助。此时真庆幸自己会一点点codeql,能尽绵薄之力。
顺便放一下大师傅们的成果。太炫酷了。
展望
几件事:
1、Java继续学不懂的:继续跟知名洞!精进codeql!尝试挖0day?
2、自学编译原理。学到什么程度?看看能不能写一个自己的语言和编译器。已经看了3天,有丶难。
3、准备一下今年hvv。