1day漏洞反推技巧实战(3)
代码审计必备技能,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)的更多相关文章
- 1day漏洞反推技巧实战(1)
学习笔记里的存货(1) 以前看了一篇推特老外做赏金猎人的文章,感触有点深,作者没有写相关漏洞分析,只是说了自己挖了多少个漏洞,这里简单的分析下: 1day漏洞在很多时候至关重要,不管是在红蓝对抗,还是 ...
- 1day漏洞反推技巧实战(2)
学习存货(2) CVE-2018-11784简单分析之反推的魅力 看着挺有趣的,简单分析下: 通过搜索tomcat漏洞找到: http://tomcat.apache.org/security-7.h ...
- Gym 101102J---Divisible Numbers(反推技巧题)
题目链接 http://codeforces.com/gym/101102/problem/J Description standard input/output You are given an a ...
- Python高效编程技巧实战 实战编程+面试典型问题 中高阶程序员过渡
下载链接:https://www.yinxiangit.com/603.html 目录: 如果你想用python从事多个领域的开发工作,且有一些python基础, 想进一步提高python应用能力 ...
- dwr2反推
package services; import org.directwebremoting.Browser; import org.directwebremoting.ScriptSessions; ...
- Anipang2反推文档
此文档主要用于一个开发同学尝试学习描述一个产品的基本设计.也许工程师都应该有类似能力. 反推的基础,目前是自己玩过的一些关卡和youtube上的一些关卡通关视频,主要是前120关.(120关后面应该是 ...
- base64随机字符混淆加密、解密-美拍视频地址解密,反推加密算法
用火车头测试采集美拍的数据时无意中发现美拍的视频地址是一段加了混淆字符串的base64代码.如下图 于是好奇之下研究了下解密算法.具体过程省略800字.发现美拍的视频解密是通过js完成,于是找到了具体 ...
- JavaScript反调试技巧
一.函数重定义 这是一种最基本也是最常用的代码反调试技术了.在JavaScript中,我们可以对用于收集信息的函数进行重定义.比如说,console.log()函数可以用来收集函数和变量等信息,并将其 ...
- HackerRank - string-reduction【反推】【规律】
HackerRank - string-reduction[反推] 题意 给出一串 只有 字母 a, b, c 组成的字符串,然后没两个不同的字符碰到一起都可以变成另外一个字符,然后变到最后,求最短的 ...
随机推荐
- Flask_generate_password_hash的加盐哈希加密算法与check_password_hash的校验
密码加密简介 密码存储的主要形式: 明文存储:肉眼就可以识别,没有任何安全性. 加密存储:通过一定的变换形式,使得密码原文不易被识别. 密码加密的几类方式: 明文转码加密算法:BASE64, 7BIT ...
- ubuntu 18.04 安装mongodb并设为开机自启动
导入包管理系统使用的公钥 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB4 ...
- 基于LNMP环境的Zabbix监控安装
一.准备LNMP环境 1.使用putty或类似的SSH工具登陆VPS或服务器: 登陆后运行:screen -S lnmp 如果提示screen: command not found 命令不存在可以执行 ...
- Python常用功能函数系列总结(四)之数据库操作
本节目录 常用函数一:redis操作 常用函数二:mongodb操作 常用函数三:数据库连接池操作 常用函数四:pandas连接数据库 常用函数五:异步连接数据库 常用函数一:redis操作 # -* ...
- Spark-local本地环境搭建
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6815385772254822919/ 承接上一个文档<Spark源码编译> 解压spark编译好的压缩 ...
- 解决maven每次更新都编程java1.5
Maven: 每次更新Maven Project ,JAVA 版本都变为1.5 本文转载自:http://www.cnblogs.com/Hxinguan/p/6132446.html 问题: 1.创 ...
- MySQL常用内置函数整理
[1]@@datadir 函数作用:返回数据库的存储目录构造SQL语句 select @@datadir;ps:@@basedir返回mysql的根目录[2]@@version_compile_os ...
- 如何使用 GitHub Pages 维护自己的博客
目录 前置知识 实际操作 声明 本文地址:如何使用 GitHub Pages 维护自己的博客 前置知识 首先,你应该知道如何用 Hexo 在本地搭建一个博客系统,具体见 Hexo. 其次,我们如果想使 ...
- 1.IO流
1.组成部分 File.FileInputStream.FileOutStream.FileWriter.FileReader 2.File pathSeparatorChar ; separator ...
- hostnamectl主机名
hostnamectl 可用于查询与修改系统主机名以及其他相关设置. 所谓"主机名",其实有三种不同的含义: "pretty"主机名,仅供人类阅读,可以包含各种 ...