代码审计必备技能,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. Zuul网关 @EnableZuulProxy 和 @EnableZuulServer 的区别

    1. @EnableZuulProxy 2. @EnableZuulServer 3.解释 1)@EnableZuulProxy简单理解为@EnableZuulServer的增强版, 当Zuul与Eu ...

  2. Echart可视化学习(十)

    文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 官网找到类似实例, 适当分析,并且 ...

  3. 乒乓球队比赛,甲队有abc三人,乙队有xyz三人。 抽签得出比赛名单:a不和x比,c不和x,z比, 利用集合求出比赛名单

    import java.util.HashMap; import java.util.Map; /** * 乒乓球队比赛,甲队有abc三人,乙队有xyz三人. * 抽签得出比赛名单:a不和x比,c不和 ...

  4. python2.7发送邮件失败之——SMTPAuthenticationError问题

    使用python2.7发送邮件,代码如下: from email.header import Headerfrom email.mime.text import MIMETextimport smtp ...

  5. java基础06-变量、常量、作用域

    java基础06-变量.常量.作用域 一.变量 变量是什么:就是可以变化的量! java是一种强类型语言,每个变量都必须声明其类型. java是一种强类型语言,每个变量都是必须声明其类型. java变 ...

  6. CSS3 动画3D视角下 旋转圆环

    首先是  transform 属性: transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. 加上对应属性则可得到3D透视效果下的形态 本次以圆形( ...

  7. C#winform控件序列化,反序列化

    using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System. ...

  8. 【刷题-LeetCode】236. Lowest Common Ancestor of a Binary Tree

    Lowest Common Ancestor of a Binary Tree Given a binary tree, find the lowest common ancestor (LCA) o ...

  9. LSM树以及在hbase中的应用

    转自:http://www.cnblogs.com/yanghuahui/p/3483754.html 讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来: 哈希存储引擎  是哈希 ...

  10. DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ | NEURAL NETWORKS

    神经网络可以使用 torch.nn包构建. 现在你已经对autograd有所了解,nn依赖 autograd 定义模型并对其求微分.nn.Module 包括层,和一个返回 output 的方法 - f ...