反序列化漏洞CNVD提交,我踩过的那些坑(血泪史)
哎,说到这个反序列化漏洞和CNVD提交,我真的是一肚子话想说啊!前两天刚把第5个反序列化漏洞提交上去,终于过了审核,那个心情啊,简直比中彩票还激动!今天就想跟大家唠唠我这一路走来的经验,尤其是那些让我头秃的瞬间。
你们知道吗?反序列化漏洞这个东西,真的是又爱又恨,爱是因为它一旦挖到,基本都是高危起步,积分到手那叫一个爽;恨的是,提交CNVD的时候各种材料准备,格式问题,描述不清晰,被驳回的滋味可真不好受,我第一次提交的时候,那叫一个自信满满啊,结果呢?第二天就收到邮件说“描述不清晰,请补充影响范围”,我当时就懵了,啥叫影响范围啊?这不都写在代码里了吗?后来才知道,人家要的是具体的受影响的系统版本、组件版本,甚至是要你画出攻击路径图。
再来说说反序列化漏洞的挖掘过程吧,说实话,刚开始看那些序列化协议,什么Java的ObjectInputStream、PHP的unserialize,我看得眼睛都快瞎了,真的,那个readObject()方法一执行,我脑子里全是“这是在干啥?这又是在干啥?”好在坚持下来了,慢慢摸到一些门道,如果看到一个请求参数里有O:开头的字符串(PHP的)或者是rO0AB开头的base64编码(Java的),那基本就可以确定有反序列化操作了,这时候,我一般会先试试ysoserial或者其他的工具有没有现成的利用链,没有的话就得自己写POP链了。
提交CNVD的过程,说多了都是泪,除了描述要生动清晰之外,还得注意一个事儿——复现环境的搭建,我第三次提交的时候,因为复现步骤写得太“意识流”了,审核小哥哥可能没看明白,直接给我打回来了,那一刻我真的是捶胸顿足啊,后来我学乖了,专门用一个干净的虚拟机,一步步截图,标注清楚每一步操作和回显结果,连URL参数都写得明明白白,你要知道,审核人员每天要看N多漏洞报告,你写不清楚他不就下一个了吗?对吧?一定要像教小学生一样,步步到位。
还有啊,CNVD对于漏洞等级评定也是有讲究的,反序列化漏洞因为能导致远程代码执行,大概率会被评定为高危或严重,如果你只是在理论上说了说,没有实际打穿,或者影响面确实小(比如就一个内部测试系统),那评分可能就低了,甚至还有被忽略的风险,提交之前一定要自己测试充分,能拿到whoami或者id命令的回显,那才是硬道理。
说到这儿,我不禁想吐槽一下,有些人提交漏洞只关心自己有没有拿到“原创积分”,不关心漏洞描述的质量,这样真不行!好的漏洞报告,不仅方便审核,还能提升你自己的影响力呢,就像我上次提交的一个Spring相关组件(Fastjson我就不点名了)的反序列化漏洞,我把利用链的原理、修复建议都附上了,审核直接秒过,还给我发了个“优秀报告”的标记,那种成就感,哎呀不摆了!
我想对刚入门的朋友们说,挖漏洞、交CNVD,一定不要怕麻烦,也不要怕被驳回,每一个驳回意见,都是你进步的机会,打好基础,多跟前辈交流,多思考每个API背后的逻辑,你会发现反序列化漏洞的世界,真的是别有洞天啊!

如果你也对网络安全感兴趣,或者想了解挖洞、提交CNVD的更多细节,欢迎加我QQ一起交流:492648901,咱们一起进步,把这个圈子搞得更好,让网络空间更安全一分是一分,对吧?嘿嘿。

