Zoho漏洞分析-总结漏洞分析三板斧
漏洞分析三板斧
1、挖掘已公开信息:厂商公告信息,同行已经办公开的细节
2、代码对比分析:Jar包分析,源代码分析对比分析,补丁分析(主要看修补了哪个地方)
3、过往漏洞分析or自行构造:根据漏洞类型和代码分析的结果,构造poc触发。
(1)如果是同类型历史漏洞poc可能通用
(2)如果是通用漏洞(如sql注入等等)直接自己构造或者调用工具。
(3)如果都没有只能自己一点点构造。
公告分析
https://www.manageengine.com/products/passwordmanagerpro/advisory/rce.html
https://www.manageengine.com/products/passwordmanagerpro/release-notes.html
补丁分析
过于繁杂冗余,难以分析
源码分析
Jar包分析
大部分代码直接打包到jar中,因此需要反编译,再做对比分析。
1、详细的对比分析
优点:直接通过代码比对工具反现问题
缺点:需要反编译,部分工具反编译出来之后出现变量名称不一样,以及一些其他冗余的干扰字符,代码量较大
2、粗略的对比分析
优点:速度快直接确定哪些jar包被改过
缺点:如果jar被重新打包,即使同版本也会出现md5值不一样,无法直接看到代码
粗略对比diff.py
import os
import hashlib
new_dir = os.walk("pmp1200/lib")
old_dir = os.walk("pmp1210/lib")
for dir_name,sub_dir,dir_file in new_dir:
for name in dir_file:
if ".jar" in name:
full_name = dir_name + "/" + name
other_full_name = full_name.replace("pmp1200","pmp1210")
new_md5 = hashlib.md5(open(full_name,'rb').read()).hexdigest()
old_md5 = hashlib.md5(open(other_full_name,'rb').read()).hexdigest()
if new_md5 != old_md5:
print(full_name)
确定poc
https://xz.aliyun.com/t/8184/
插曲
1、前期dnslog有,计算器没弹框,也没生成文件以为没成功,实际上因为目标环境自带的jre等等情况导致没法完美弹框
2、后期跟外面其他师傅沟通,得到反馈的信息是cb链没打成功是因为uid的问题,但其实cb1.9.2和1.9.4其实是一样的。(