长亭百川云 - 文章详情

1day漏洞反推技巧实战(3) - 飘渺红尘✨

博客园 - 飘渺红尘✨

51

2024-07-19

  代码审计必备技能,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

  下载之后可通过

git diff 文件夹1 文件夹2:

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

  

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

  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: '" ./

  

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

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2