2025年终总结

Showmaker 曾说过,失败总是贯穿人生始终。人总是擅长从失败中总结教训、吸取经验,而对于成功往往只有得意忘形的骄傲,从这个角度上讲,过早的在一些并不重要的事情上经历失败未尝不是一件好事。

我自己确实也非常深有体会,因为我自己就是在一次次的失败中成长起来的。初中的时候我们那里的人其实都不太看重中考,因为中考考的再好也只能上本地的高中,而高手都是在死命备战自主招生考试,目标都是去上成都绵阳的好高中。但可能因为我自己之前也没有经历过中考这样的大型考试,所以在考试的时候极其紧张,腿一直抖个不停,由于过于紧张最后自然发挥的也很差,成绩比自己的正常水平低了很多。

即使面对一个当时对我而言都不算特别重要的中考都让我发挥如此之差,很难想象以后面对其他更加重要的考试我会是怎样的状态。所以后来中考成绩出来之后我一直在思考和反省,调整自己的状态,多亏了那一次的失败,让我后来无论面对什么考试都能保持一个轻松自在的心态。

25年这一年有很多想做的目标,比如想投四大,想上blackhat,想挖一些有趣的漏洞,想在安全领域做出自己的贡献,解决一些之前大家没能解决的问题,但失败总是贯穿人生始终,这些我真正投入了很大精力的事最后都没有获得理想的结果,反而是我其实没怎么放在心里的考研最后结果还不错,不得不说是蛮讽刺的。

24年这一年算是没写年度总结,毕竟我那一年确实没啥好总结的,就是嗯考了一年的研,但25年确实经历了很多事情,该从哪里说起呢,可能还是得从考研开始。我有个朋友之前给我分享了一下他的校招经验,说他和某大厂面试官聊漏洞聊的挺开心的,但一聊到计算机基础知识就拉跨了,后面面试官给他说,”你们校招和社招还不一样,就算有项目经历实习经历,做的也不深,比较看你专业课能力和漏洞基础能力”,最后自然面试没有通过。

我当然也不是一个基础扎实的人,之前大二找实习的时候还曾被面试官锐评”不像科班出来的像培训班出来的”。不过多亏我考研学的是408,作为计算机考研除了清华自命题以外最难的计算机专业课,学408的过程自然也让我对于计算机运行原理的理解深刻了很多,之前我在博客上也分享过我自己的408笔记,当时甚至可以做到对着考研大纲默写知识点,那段学习的时间对我而言其实挺快乐的,相比于学安全和打CTF的时间,考研实在是要轻松很多,而学408也让我更好的理解了那些过去忽略的问题。

那段时间其实有个小插曲,就是某一次刷公众号的时候突然想到自己作为一个搞安全的好像还没有一本CNVD证书,于是挑了几个项目开始挖,当时确实也水了不少的洞,拿到了证书。但当时有一个十分困扰我的问题,由于那时候还不懂程序分析,所以我只是隐约的感觉我挖的这些漏洞似乎能有一种更方便快捷的方式自动化的检测出来,我归纳了一下,这些漏洞的入口点都是一个用户直接可控点,比如$_POST,用户可以控制它的输入,而最后的触发点都是比如 eval、system 这类危险函数,如果二者之间存在一条可达路径,我们其实就可以认为这个系统中存在漏洞,人工去 check 一下即可。

我一直没觉得我是个运气很好的人,不过我觉得我能加入 SU 确实是蛮幸运的,大伙没觉得我是废物接纳了我,也让我在这里认识了许多人品和技术都令人仰止的师傅,比如书鱼哥哥、陆队、yulate、m4x 等等,对我的人生产生了极其重要的影响,在我毕业论文的致谢里也由衷的感谢了大家。当时我就问 yulate 是不是真的存在某种自动化的检测这类漏洞的手法,他当时告诉我这东西叫做污点分析,所以我后来考完研之后毕设做的也是 PHP 的污点分析。

当时初试结束开始准备复试,我当时其实意识到了绝大部分老师不会 care 我打的比赛或者人工挖的洞啥的,事实证明确实如此,毕竟这些东西算不上科研经验,发不出论文。不过如果能有一种自动化的手段发现漏洞,即使发现的是很垃圾的漏洞,老师应该也会非常感兴趣。所以当时虽然我们学校的毕设没有污点分析这个选题,出于备战复试的目的我也很想自己做一个用污点分析自动化发现漏洞的工作作为毕设。

这里真的非常非常感谢我当时的毕设指导老师高瑞老师,由于我是初试完才开始想毕设的问题的,有意思的选题早被别人选完了,而我们这里每个人的毕设选题必须是不一样的,我当时很绝望,难道我要浪费自己的时间在这些垃圾题目上吗。当时翻毕设的文件的时候偶然发现其实只要指导老师同意,指导老师能帮你新创立一个题目当作毕设,然后我去系统上翻,发现高瑞老师之前有个被选了的选题叫做用 AST 静态检测漏洞啥的,但我这个是用污点分析,当然和这个同学是不重叠的,所以费劲千辛万苦要到了高瑞老师的联系方式希望她能帮我新开一个这样的题目,最后她同意了,后来写毕业论文的过程中她也帮了我非常非常多,没有她的帮忙我感觉自己都毕不了业了/(ㄒoㄒ)/~~

由于我是个程序分析小白,遵循 yulate 的建议,我去完整看了南大谭添和李樾老师的《软件分析》,我博客上也有我当时的笔记,然后过年也没回家,每天高强度的在学校一边备战复试的机考一边写毕设,最开始是参考了梅子酒哥哥的 PHPVulFinder,不过后来一边写一边改,最后和 PHPVulFinder 相比已经面目全非了,整体的设计思路和逻辑都变化极大,走出了一条自己的路。

对于一般的应届生而言,其实能熟练学会 Tai-e、soot、codeql 这类成熟的 SAST 工具就已经相当不错了,而我当时时间紧迫,必须要在复试前做出来这个东西,所以从底层开始全是自己一边学一边写的,每天都在思考怎么实现李樾和谭添老师上课时讲的 IR 、CFG、Basic Block 以及污点传播算法啥的,最后非常粗糙的完成了整个工具。当时还在刷代码随想录备战机考,而备战机考其实对写工具的帮助也挺大的,毕竟污点传播本质上也就是个图的搜索问题,TaintScaner 的文章里也提到过我当时遇到过一个问题,就是不知道怎么处理跨文件污点传播的时候的成环检测,后来还是刷代码随想录的回溯那一章的时候才意识到其实把整个问题看成一个递归搜索即可,用一个标记来标记当前是否已经被搜索就行了。

最后复试面试的时候也不出所料,面试的老师对我自称完整写过一个污点分析工具的经历非常感兴趣,整个面试都在问我程序分析相关的问题,由于我这些东西真的全是自己一行代码一行代码敲出来的,对程序分析的理解自然也比一般的学生强的多,所以最后自然也聊的很开心,聊了很多现在程序分析的工作里可能存在的问题和解决手法,还有两分钟的时候老师就让我提前走了。虽然我的机考分很低,毕竟作为一个安全🐕平时也用不上算法,考研前完全没接触过,力扣的号都是初试完才注册的,但面试分很高,作为一个不知名野鸡四非高校的学生,最后竟然力压一堆985本科的同学,拿了软院网安方向复试和总成绩的双第一,可以说是相当传奇了,而由于现在复旦软院也已经被合并进计院了,我这个记录应该也不可能被打破了 XD

不过相比从从容容的复试,组面的强度确实有点大,被师兄拷打的冷汗都快出来了,算是我人生中最折磨的一场面试。师兄作为拿了四家头部互联网大厂人才计划的究极技术大佬,随便一追问就问出了我的真实水平,我记得我当时组面完整个人都玉玉了,一整天都在后悔本科的时候为什么不多努力一点,为什么对于很多问题理解的这么浅薄,不过好在最后还是有惊无险的进了组,还是对我放水了 (*^_^*)

当时还没复试完的时候 yulate 一直搁那儿问我要是没考上准备干啥,我说没考上我就回老家找个保安岗一边当保安一边准备二战,yulate 给我说要是没考上就来寻臻和他一起做程序分析。相比于去大厂,我其实挺希望能去个初创公司的,我很喜欢这种和大家一起怀揣理想做一些有意思的事的感觉,说不定后面就一飞冲天A股上市,最后大家都财富自由了。虽然天不随人愿,我还是一战考上了,但我一直感觉自己是精神寻臻人😀

比较搞的是当时拟录取第二天张老师就让我进组干活了,也让我感受了一下 secsys 的强度,只能说和读研相比,互联网还是太轻松了😈。 考研结束后虽然还是得每天进组干活,但我毕竟当时还没毕业,还得写毕业论文呢,所以还是给我留了很多时间让我能自我学习。当时我已经一年没接触安全了,技术和同一辈的师傅相比已经落后太多太多了,久违的回到了过去学安全的节奏。鲁迅先生曾说过,时间就像海绵里的水, 只要愿挤,总还是有的,而我觉得那段时间的我简直就像海绵一样每天疯狂的吸收知识。

其实和大伙印象中那个虚假的🐕and🐱不同,我是很深刻的知道我在 web 安全领域不是一个很厉害的人,虽然单看2023年的年度总结看起来我好像是个安全高手,实则获奖全是在联队躺的,自己带队打比赛成绩全是垫底,所以我考完研之后我每天疯狂的学习,也把一篇堪称我博客上黑历史的文章重写了一遍。那段时间其实还是蛮快乐的,每天都在学新东西,一整年也产出了很多有意思的文章,让某个25年才加我的师傅评价道,之前都没听说过我这号人,怎么突然就冒出来了个横空出世的高手 😂

今年我可谓是非常的高产,因为今年我发的文章认识我的师傅感觉比前几年加起来还多,我自己去知识星球上看了看,我这一年精华帖的数量都要比很多大家熟悉的师傅的总发帖量要高了。由于我过去的很多文章其实没啥含金量,所以今年我专门做了个置顶文章 fushulingの年度文章 来放我每年写的比较有意思的东西。这一年影响力最大的两篇文章应该是 当include邂逅phar——DeadsecCTF2025 baby-web高版本JDK下的Spring原生反序列化链,后来也被不少比赛拿去出题或者文章引用过,不过说实话这两个文章和我的关系也不算很大,我最多只是写了个文章做了个分析而已,phar 是老外出的题,spring 链是 jsjcw 师傅挖的,我只是最早写详细的分析文章所以蹭上了热度。

当然,除了这两篇网红文章,还是有不少有意思的东西是我自己发现的,由于考完研比较闲,所以也去挖了挖洞,挖了不少有意思的洞写成了文章,比如好几个 JDBC 绕过的 CVE,都是在我之前网上搜不到,全是我自己看底层代码研究出来的,比如 h2 的反斜杠、json 属性覆盖、Local 差异绕过等等,每个 CVE 都代表了一种前所未有的新 trick,这一点我还是非常骄傲的。最让我自豪的应该就是 json 属性覆盖这个洞了,在大家还在费劲心思绕黑名单的时候,我想出了一种方法绕过了所有的 JDBC 检测,可谓是完全从另一个维度看待这个问题。今年也和 yulate 一起做了一个系统总结 jdbc 绕过技巧的项目(https://github.com/yulate/jdbc-tricks/),受到了大家的强烈欢迎,拿到了五百多 star,后面看到有些师傅也用我们项目上的技巧挖到了洞甚至拿到了 bounty,我们也是非常的开心。

除了 JDBC 当然也写了一些杂七杂八的文章,比如 fastjson1.2.83 的利用、华夏 erp 的前台RCE链、fail-open 问题总结等等,受到了大家的广泛欢迎,拿了p神好几次精品文章红包奖励,也受到了许多安全大佬的认可,比如 p神、su18、chybeta 这些大佬全是主动加我要的我的好友位,也是非常有牌面了😆。 不过写博客只能算是我的一种消遣,更多的是把我平时闲着没事儿研究的一些好玩儿的东西拿出来分享给大家,来了复旦之后我其实也做了很多有意思的东西,只不过我们的工作现在还没法分享细节,这也让我想起了 yulate 之前说羡慕我能经常写博客,他现在搞的东西都没法放博客上,当然也可能是因为他作为高贵的 blackhat speaker 搞的东西太高级了,不像我还有一些零碎的东西可以放博客上。

上面的分享算是我平时干的私活,进了组之后当然也做了一些其他很有意思的东西,昨年也拿我和师兄我们两个人的一些小成果评了个复旦开源先锋奖,拿了一万奖金还上了新华网

来了这边之后每天都在拼命学习和干活,当然也挖了不少洞。当时有个政治任务是需要挖一些被 CNVD 收录的开源项目的漏洞,于是花了一个月时间每天去 Gitee 找幸运项目开挖,最后也是水了三十多个 CNVD,包括不少 Gitee 最有价值开源项目的前台 RCE。这里就要提到我和 Apache 的恩怨情仇了,今年我给 Apache 至少发了六次报告,要么开发者不理我,要么修了不给我 CVE,于是某个洞我一怒之下直接交 CNVD 了,没想到 CNVD 审核还挺快的,三天之内就给我归档了,还给我下了个满分的证书 ,感觉 CVE 真不如咱们 CNVD 权威

今年学校里另一个比较有趣的事就是去当了一个学期本科生课程的助教,当然由于我导师很忙,上课啥的基本上都是我在上了。虽然名字比较高级,叫做什么系统攻防,不过主要还是讲的 Web 安全,这确实属于我的究极舒适区,一边梳理常见的 Web 知识一边做 PPT 啥的,最后出了五六十道 CTF 题当他们的实验题。最后期末机考和卷子也是我出的,甚至打分也是我打的,最后还评了个优秀助教

另一个比较有意思的事就是今年参与了几次四大的审稿,当然也试着投了一次,虽然我不是一作只是三作。在组里一直在研究一些有趣的东西,也让我摆脱了本科四年浑浑噩噩的状态,开始认真的思考我自己的工作是否有让这个世界变得更好。抖音有个段子说,当你放大的时候有没有想过自己小时候的梦想是当科学家。我小时候的梦想也是当科学家,当然现在的梦想也是,只不过变成了计算机科学家。

我身边很多做安全的师傅的梦想可能都是挖一个像 log4shell 一样影响很大的漏洞,但我其实对于单纯的挖洞并不是很感兴趣。在我做 PHP 污点分析工具的时候我就一直在想,发现漏洞终归只是一个 case by case 的过程,更重要的是要思考怎么解决一类安全问题。比如对于注入型的漏洞,其实利用污点分析就可以很轻松的自动化发现。但安全发展了这么多年,我们还是并没有让某一类安全问题消失,即使是有了预编译的 SQL 注入,还是存在 order by 等等注入点,污点分析被提出来了这么多年,我们还是没有让注入类漏洞消失,更别说这类 Taint style 的漏洞只是一小部分,许多业务逻辑漏洞根本不能这么轻松的归纳。

我一直很羡慕陆队的一篇文章标题:hxp CTF 2021 – The End Of LFI?,我当时看完之后就觉得这个标题非常帅气——the end of XXX,到底什么时候我才能骄傲的说我完全解决了某类安全问题,让它从这个世界彻底消失呢?在学术界要做一篇好的论文,最重要的是先发现问题再解决问题,发现某一个其他人没关注到的点然后努力解决它,但工业界有所不同,因为想让一套系统完美的运行不可避免的会遇到许多问题,因此更多的是关注如何解决问题。我过去一直很好奇那些刚毕业就能拿人才计划年薪百万的人到底是做到了哪一点呢,和这里的师兄接触之后我才意识到需要的就是解决问题的能力,对于某个困扰大家许久的问题,你是否能提出一套好的解决办法并被大家认可。

今年对我打击最大的可能就是我们的论文被拒了,而且被拒的理由也非常扯淡。之前我们组里师兄 S&P 拿 distinguished paper 的那篇论文的得分是两个accept 两个weak accept,而我们这篇论文的得分是两个accept,一个 weak accept,而最后一个审稿人直接给了 reject,而拒我们的理由也非常扯淡,只有简单的一段话,你们论文里提到的发现的 CVE 大部分都是自己走 CNA 审的而不是项目开发者自己申请的,而根据今年 USENIX Security 的 Confusing Value with Enumeration: Studying the Use of CVEs in Academia 的系统调查,这类自己申请的 CVE 根本算不上 CVE,甚至是垃圾漏洞的最大批发商,既然你们这个工作发现的漏洞都是垃圾,所以整个工作自然也都是垃圾了。即使我们在 rebattle 的时候多次强调我们发现了许多知名开源项目的漏洞,拿到了 Apache 官方的致谢,甚至还入选了 CIA 的 Known Exploited Vulnerabilities,具有极大的影响力,甚至我们都能给出每个漏洞的修复 commit 来证明开发者确实 confirm 了我们的工作,但那个给 reject 的审稿人竟然这都能说服其他三个给超级正面意见的审稿人拒了我们。

那天邮箱收到被拒的消息的时候我整个人都破防了,虽然我想到可能因为有个审稿人给了负面意见所以拿不到 distinguished paper 了,但无论如何也不可能被拒吧,结果这么离谱的事还真的发生了,当时一叶飘零师兄也说这么高的分也被拒也是没谁了。怎么说呢,其实我有的时候也确实有点骄傲,觉得自己在挖洞的领域肯定比这些只混学术界的 reviewer 强的多,有时候确实有点看不起他们,但最后在我最擅长的领域被别人击败确实对人的打击太大了。

今年其实做了很多有意思的工作,也在许多影响力极大的开源项目中挖到了漏洞,这也让我坚信自己在做的工作是有意义的,我确实是在让这个世界变得更好,希望明年的自己能吸取教训,把每件事都做的更好,不要总是不长记性给别人添麻烦,做一些真正有价值的事,希望到 26 年的年终总结的时候我们的工作能被认可,让我能分享分享这一年我都做了什么,解决了什么问题 🙂

评论

  1. Thanatos
    1 周前
    2026-4-20 11:03:40

    tql😭

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇