代码审计必备技能,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: '" ./

  

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

1day漏洞反推技巧实战(3)的更多相关文章

  1. 1day漏洞反推技巧实战(1)

    学习笔记里的存货(1) 以前看了一篇推特老外做赏金猎人的文章,感触有点深,作者没有写相关漏洞分析,只是说了自己挖了多少个漏洞,这里简单的分析下: 1day漏洞在很多时候至关重要,不管是在红蓝对抗,还是 ...

  2. 1day漏洞反推技巧实战(2)

    学习存货(2) CVE-2018-11784简单分析之反推的魅力 看着挺有趣的,简单分析下: 通过搜索tomcat漏洞找到: http://tomcat.apache.org/security-7.h ...

  3. Gym 101102J---Divisible Numbers(反推技巧题)

    题目链接 http://codeforces.com/gym/101102/problem/J Description standard input/output You are given an a ...

  4. Python高效编程技巧实战 实战编程+面试典型问题 中高阶程序员过渡

    下载链接:https://www.yinxiangit.com/603.html 目录:   如果你想用python从事多个领域的开发工作,且有一些python基础, 想进一步提高python应用能力 ...

  5. dwr2反推

    package services; import org.directwebremoting.Browser; import org.directwebremoting.ScriptSessions; ...

  6. Anipang2反推文档

    此文档主要用于一个开发同学尝试学习描述一个产品的基本设计.也许工程师都应该有类似能力. 反推的基础,目前是自己玩过的一些关卡和youtube上的一些关卡通关视频,主要是前120关.(120关后面应该是 ...

  7. base64随机字符混淆加密、解密-美拍视频地址解密,反推加密算法

    用火车头测试采集美拍的数据时无意中发现美拍的视频地址是一段加了混淆字符串的base64代码.如下图 于是好奇之下研究了下解密算法.具体过程省略800字.发现美拍的视频解密是通过js完成,于是找到了具体 ...

  8. JavaScript反调试技巧

    一.函数重定义 这是一种最基本也是最常用的代码反调试技术了.在JavaScript中,我们可以对用于收集信息的函数进行重定义.比如说,console.log()函数可以用来收集函数和变量等信息,并将其 ...

  9. HackerRank - string-reduction【反推】【规律】

    HackerRank - string-reduction[反推] 题意 给出一串 只有 字母 a, b, c 组成的字符串,然后没两个不同的字符碰到一起都可以变成另外一个字符,然后变到最后,求最短的 ...

随机推荐

  1. Jenkins_构建任务提示文件权限不足的处理方法

    问题现象 构建任务失败,查看日志提示读取文件权限不足. 问题分析 在linux上查看对应文件,发现这些文件只有root用户才有读的权限,jenkins默认是以jenkins用户在操作linux系统,因 ...

  2. How to run a batch file each time the computer loads Windows

    https://www.computerhope.com/issues/ch000322.htm#:~:text=Press Start%2C type Run%2C and press Enter. ...

  3. PowerShell【Do While、Do Until篇】

    1 $num=0 2 while($num -le 10) 3 { 4 $num 5 $num+=1 6 } 1 $num=0 2 do 3 { 4 $num 5 $num+=1 6 } 7 whil ...

  4. 总结关于spring security 使用 JWT 和 账户密码登录 整合在一起的新感悟

    (1)jwt登录拦截,需要在账户密码认证之前进行jwt认证,因此jwt拦截需要在 UsernamePasswordAuthenticationFilter 之前: (2)jwt验证通过则不需要执行账户 ...

  5. Java 单引号 与 双引号 区别

    双引号,用来引用字符串, 单引号用来表示单个字符.

  6. spring security 动态 修改当前登录用户的 权限

    1.前言 spring security 可以获取当前登录的用户信息,同时提供了接口 来修改权限列表信息 , 使用这个方法 ,可以动态的修改当前登录用户权限. 那么问题来了... 如果我是管理员 ,如 ...

  7. ubuntu 升级node和npm 版本

    使用vue-cli 3 构建项目时会一直卡在拉取依赖不动,原因是node和npm版本过低,升级node版本即可 $ sudo npm cache clean -f $ sudo npm install ...

  8. Java实现单词统计

    原文链接: https://www.toutiao.com/i6764296608705151496/ 单词统计的是统计一个文件中单词出现的次数,比如下面的数据源 其中,最终出现的次数结果应该是下面的 ...

  9. Servlet中分发器和重定向两兄弟

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6513702111698485767/ 弄清这个两兄弟,我们还是从练习中去理解 先创建一个数据提交页面,注意路径 编 ...

  10. python环境搭建以及jupyter notebook的安装和启动

    一.Python 环境搭建 本章节我们将向大家介绍如何在本地搭建Python开发环境. Python可应用于多平台包括 Linux 和 Mac OS X. 你可以通过终端窗口输入 "pyth ...