1day漏洞反推技巧实战(3) - 飘渺红尘✨
2022-2-14 18:3:0 Author: www.cnblogs.com(查看原文) 阅读量:39 收藏

  代码审计必备技能,github代码对比,写一笔:

  搜索某开源组建漏洞,搜索出来某个版本rce:

  

  通过消息得出:存在漏洞版本:1.10.10 ,修复漏洞版本1.10.11

  去github寻找apache-airflow:

  打开就是主分支:

   

  切换到漏洞版本分支:

  有两个办法:

  (1)https://github.com/apache/airflow/tags

  一个个翻,翻到对应版本,往下拉

   

  (2)搜索Tags分支,切换分支:

  

  切换过来然后:

  切换分支下载对应版本项目:

git clone -b 1.10.10 https://github.com/apache/airflow.git

   

  这样就把存在漏洞的版本下载下来了,修复版本是1.10.11

  下载修复版本:

git clone -b 1.10.11 https://github.com/apache/airflow.git

  下载之后可通过

  这样就可以查看修改了哪些文件:

  

  除了下载下来查看,也可以直接网页查看对比:

  https://github.com/apache/airflow/compare/1.10.10...1.10.11?diff=split

  可以看到1.10.10~1.10.11之间提交的Commits和修改的文件:

  

  查看代码修改,左侧是修复前,右侧是修复后的代码片段:

  

  遇到的问题:Commit太多了,版本更新迭代的文件太多了,这时候,我们怎么定位到哪个是问题文件?

   (1) 理想状态:第三方漏洞预警平台提供了对应的漏洞Commit提交记录

  (2)只知道某种漏洞类型,如sql注入类型/rce类型

  大部分都是2,如果是1的情况,直接看对应的Commit提交记录就可以了,不要那么费劲

  如果是2,只知道漏洞类型怎么办?

  举例子说明:git diff配合grep:

git diff airflow airflow_novuln/ |  grep "command" > aa.txt

  去漏洞版本项目中搜索部分代码片段:

grep -rn "echo \"Here is the message: '" ./

  

   找到漏洞文件,如果还有更好的方法,麻烦留言!


文章来源: https://www.cnblogs.com/piaomiaohongchen/p/15893633.html
如有侵权请联系:admin#unsafe.sh