001-2021年4月13日 学习随笔
本文从一篇文章出发,总结一些安全学习研究的想法。
0x00 背景
最近演习期间,精神紧张,忙里偷闲看看大佬们的历史博客,学习一些东西。
今天就看了P牛的《宝塔面板phpMyAdmin未授权访问漏洞是个低级错误吗?》,也不是为了漏洞复现分析什么的,就是从这篇文章中学到的学习方法。
0x01 一些想法
当我们收到一个漏洞情报时,该怎么做呢?我觉得可以这么几个角度来做:
-
收集整理漏洞情报基本信息,包括漏洞影响范围、漏洞类型、漏洞等级、漏洞利用条件、缓解措施和修复建议;基本上收集整理完这些信息,可以下发给各单位进行自查和防护,算是一条比较详细的威胁情报了
-
漏洞点位置,有无poc/exp公开
如果无poc/exp公布,但是有补丁文件公布,可以对比打补丁前和补丁后的代码,找到漏洞点位置
-
漏洞分析,漏洞形成的原因。
对于第三点漏洞分析来说,通常只会看下漏洞点位置的代码上下文,漏洞是怎么形成的,如何构造poc/exp,做一个漏洞复现就结束了。
这是很多漏洞分析文章的通病,这些文章在出现漏洞后跟一遍漏洞代码,找到漏洞发生点和利用方法就结束了,并没有深入研究开发为什么会这么写,那么下次你还是挖不出漏洞。
但是看了P牛的文章,又有了新的认知。我们不光要知道这个漏洞代码存在之后的事情,我们还要考虑这个代码为什么要这么写。这就要考虑该漏洞的影响版本,从最早的版本和再前一个版本之间的区别,思考这背后是什么让开发者改变了代码,官方做这些动作的原因。
-
漏洞复现
利用公开的poc/exp,或自己分析后得出的poc进行漏洞复现,并构思分析可能的利用链。对poc的功能进行完善,往exp发展。
-
检测分析
对使用poc/exp进行漏洞复现过程中所产生的流量进行分析,尝试提取流量特征,思考什么样的规则可以检测到该攻击。
使用该poc/exp对系统产生的影响,是否有日志产生,是否有文件落地等。
-
exp修改,隐蔽痕迹
修改exp特征,写自己的exp工具,竟可能做到隐蔽式攻击。