代码审计必备技能,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. 在CentOS7上安装 jq

    安装EPEL源: yum install epel-release 安装完EPEL源后,可以查看下jq包是否存在: yum list jq 安装jq: yum -y install jq 命令参考资料 ...

  2. redis 加锁与解锁的详细总结,解决线程并发导致脏数据

    1.前言 对每个controller来说都是全新且单独的,原因是多线程,如果多个请求操作共有的数据,这样的并发操作会导致脏数据 怎么解决? mysql可以使用积极锁解决, 这里讲解的是redis的解决 ...

  3. 微信小程序自定义导航栏组件

    1.首先,要在json文件中设置为自定义的形式 "navigationStyle": "custom" 2.计算相关值 导航栏分为状态栏和标题栏,只要能算出每台 ...

  4. 灵雀云新一期DevOps认证培训圆满结束,下期学员招募同步开启

    近日,灵雀云最新一期EXIN DevOps认证培训在北京圆满结束,来自某知名运营商领域ISV的近40名学员以百分百的通过率为此次培训画上圆满的句号. 灵雀云是国内首家在DevOps培训领域与EXIN合 ...

  5. 基本的sql语法

    1. SELECT: 用于从数据库中选取数据 SELECT name,value FROM table_name 2.SELECT DISTINCT 语句用于返回唯一不同的值(去重) 3.WHERE ...

  6. SSRF漏洞用到的其他协议(dict协议,file协议)

    0x00 引言 当SSRF打内网reids时,若gopher协议用不了,我们也可以用其他协议 0x01 dict协议一.定义:词典网络协议,在RFC 2009中进行描述.它的目标是超越Webster ...

  7. 《剑指offer》面试题36. 二叉搜索树与双向链表

    问题描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜 ...

  8. go语言 strconv.ParseInt 的实现分析

    字符串与数值之间进行转换是一个高频操作,在go语言中,SDK提供 strconv.ParseInt 将字符串转换为数值,strconv.FormatInt 可以将数值转换为字符串. 1.首先看下 st ...

  9. Centos下安装Spark

    (注:由于第一次安装操作失误,所以重新安装了,因此截图为第一次的截图,命令为第二次安装的命令) (注:图是本人安装所截图,本人安装参考网址:https://www.cnblogs.com/shaosk ...

  10. CentOS 8安装Docker报错(Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.)

    CentOS8安装docker和docer-conpose 报错如下Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires contain ...