xinali/articles

ReadDaily [2020]

xinali opened this issue · 0 comments

ReadDaily

TaskList

  • 20200430 堆风水+CreateBitMap windows内核漏洞利用方式
  • 20200429 windows search 多线程竟态引起的漏洞
  • 20200503 ThunderJ师傅的CVE-2015-0057 windows内核利用
  • dharma 基于语法的fuzz方式的学习(可以结合radamsa学习)
  • 小刀师傅的桌面内核漏洞系列
  • KeLiu 师傅的adobe pdf漏洞,js脚本的利用

HEVD内核漏洞系列练习

环境搭建 20200911

20201202

TLS网络安全协议学习

一篇特别好的,学习tls协议的文章,正好公司最近在做这部分的fuzz工作,很有用,还有就是其提供的tls协议学习网站

20201201

Dynamic Binary Instrumentation Primer

花了几天时间,断断续续利用业余时间看完了,文章非常长,主要是利用intel的pin和dynamorio做动态分析,其中包含的代码覆盖率检测部分对于研究fuzzing很有用,再有就是dynamorio部分的tracerwrap了,wrapfuzz windows gui程序可能会比较有用,这里我加入到了自己的xfuzzer程序中

20201006

Fuzzing ImageIO

今天重读了pj0的文章,发现他是自己写的一个简单的利用idapython得到代码块数据,之后利用patch版本honggfuzz去测试mac下的闭源软件,现在有比这个好的解决方案,tinyinst

20200910

Writing an OS in Rust

利用Rust写一个操作系统,Rust本身我不怎么会,就是照葫芦画瓢的做了一遍,主要是读一读其中涉及到操作系统部分的实操,具体rust的细节可以不考虑,目前来看还挺有意思的

  • A Freestanding Rust Binary
  • A Minimal Rust Kernel
  • VGA Text Mode
  • Testing
  • CPU Exceptions Reading

20200908

Ghostscript SAFER Sandbox Breakout (CVE-2020-15900)

在前人的基础上fuzz,只是单纯的添加了运算的字典,就fuzz出了不一样的结果,很有启发

20200817

Breeding Sandworms: How To Fuzz Your Way Out of Adobe Reader's Sandbox

文中介绍了sandbox process 和 broker process之间是什么,两者什么关系,以及如何工作的,对于理解沙盒进程是一篇比较好的论文,之后介绍了如何使用python fuzz IPC message

20200813

Barbervisor: Journey developing a snapshot fuzzer with Intel VT-x

一篇关于使用snapshot系统,之后去fuzz的文章,只能看懂文章的一部分而,但是文章中给的一些资料还是很好的,比如使用rust写一个系统内核,作为自己底层知识的拓展都极有好处

202020618

Using Frida For Windows Reverse Engineering

利用frida分析windows平台的恶意软件,这种用法我是第一次看到,没有具体用过,这种直接hook的方式,不知道比我自己写hook函数的方式会不会更加方便,而且不知道各种反调试能不能绕过,如果这类做不到的话,应该是比较鸡肋的

20200615

UDP通信程序的fuzz思路与CVE-2018-18066分析

stdin转化为网络输入,这种情况,在程序比较简单时,有用,如果程序过于复杂,就没法这么改,到时需要用到python相关的fuzz库,比如boofuzz等

20200609

google TinyInst

一个简化版的dynamiicrio,大概的用法知道了,但是缺少实际应用的例子,这里实际的例子是指用于漏洞挖掘中的,我在github上提了一个issue,但是作者提供的是库的用法,以后出现了用法,再补充

20200606

浅谈通过推特获取威胁情报

文章主要说的是,通过twitter搜索一些恶意软件的信息,包括一些搜索的技巧,很实用

20200604

Frida-Fuzzer:一款针对API的内存模糊测试框架

github库 一款andriod API库的测试工具

一个给新手进阶的IAT加密壳

一篇详细讲解IAT加密壳的文章,包括了整个壳的加密过程,最好的就是最后给出了源码

针对当前微软堆栈保护绕过进行漏洞挖掘三例

文章针对目前微软采取的堆栈漏洞防护进行了简单的叙述,最主要的是最后的三个绕过案例

CVE-2015-0010:
这个漏洞存在于cng.sys模块中,该模块是微软的内核密码学驱动模块,里面包含了开放给其它内核驱动和用户模式程序的控制功能。在使用特殊的控制代码进行访问时,它会返回特定的函数接口地址,以便用户进行相关的密码学操作,而无需自己从头实现这些代码,本来这些功能应该仅开放给内核模式代码,但在cng模块的早期实现中,这些功能同时可以被内核和用户模式代码调用,这样就出现了问题。这种类型的信息泄露并没有利用内核栈上的未初始化变量,但依然能够获得特定内核变量的地址,成功实现了内核的信息泄露

CVE-2019-1071:
这个漏洞利用了内核结构体的联合功能(union)定义,用户之所以定义联合体,其本意是为了节省内存,可是在特定的情况下,却成了危险的来源。

CVE-2019-1436:
这个漏洞利用了函数的返回值未被置空的bug。在内核函数调用的时候,部分函数的返回值被定义为VOID, 表明它不返回任何有效的结果,系统仅仅利用了函数的执行过程。

20200601

Fuzzing workflows a fuzz job from start to finish

文章中说了fuzzing过程中最主要的三要素

  1. 是否存在样例代码
  2. 是否能够自己编译
  3. 是否存在可用的测试样例

afl-showmap的使用
在测试前,afl-cmainafl-tmin使用的必要性,使用screen启动afl等一些实用技巧
还有不断重复mini化的过程,作为afl入门文章,质量还是比较高的
作者也给出了相关的项目代码

20200526

微软SMBv3客户端/服务端远程代码执行漏洞(CVE-2020-0796)技术分析

smb v3整数溢出漏洞,溢出点在于,两个数据长度相加没有检查边界值,如果溢出导致越界读写,最后产生了RCE

Header = *(COMPRESSION_TRANSFORM_HEADER *)*(_QWORD *)(v2 + 0x18);// [v2+0x18]中为客户端传进来的Buffer
                                                // [v2+0x24]为数据包长度
  v4 = _mm_srli_si128((__m128i)Header, 8);
  CompressionAlgorithm = *(_DWORD *)(*(_QWORD *)(*(_QWORD *)(pData + 0x50) + 0x1F0i64) + 0x8Ci64);
  if ( CompressionAlgorithm != v4.m128i_u16[0] )
    return 0xC00000BBi64;  
// OriginalCompressedSegmentSize + CompressedSegmentSize,这里没有检查相加的值,导致整数溢出,分配一个较小的UnCompressBuffer             
  UnCompressBuffer = SrvNetAllocateBuffer((unsigned int)(Header.OriginalCompressedSegmentSize + v4.m128i_i32[1]), 0i64);

跟checkpoint的rdp整数溢出漏洞基本一样,两个数值相加,没有进行合法性检查,整数溢出导致RCE
这类漏洞单纯依靠逆向可以发现,但是难度极大,感觉fuzzing也是可以的,就是不知道具体用什么样的fuzz方式

Let's get things going with basics of file parsers fuzzing

一个类似于bff的传统fuzzer,感觉肯定是没有bff强,这类的传统fuzzer自我感觉主要可以用在比如.net java这种无法使用afl的软件中,如果可以使用DynamoRIO监控code-coverage的,肯定不用这种的,效率太低了。但是看ke liu大佬,他们找adobe reader的漏洞就是使用traditional fuzzer,不知道他们的fuzzer是不是经过特殊的优化,否则自我感觉肯定不行

20200525

Start fuzzing, Fuzz various image viewers

群里lindln的文章,主要说的是利用winafl fuzz一个图片库,整个文章就最后一个部分需要注意一下,他提到了使用loadlibrary直接载入导致整个过程不稳定,最后通过lief静态更改pe实现提速,并且稳定了整个fuzzing

20200522

Adding AFL Bloom Filter to Domato for Fun

给domato添加犹如afl的反馈机制

20200521

Fuzzing TCP Servers

说的是使用honggfuzz测试tcp服务器的技术,主要用到了其中的netdriver,作者说这个具有普遍的通用性,而且最后给出了测试步骤,用的是apache的httpd,不知道这类的能不能测试像libev和libuv这种框架写的服务组件,能的话,对我目前的研究就帮助太大了

20200520

honggfuzz-v2.X版本变异策略及const_feedback特性分析

honggfuzz 2.x版本变异策略研究,文章很水,主要是可以研究是否能够移植变异代码

20200519

Extracting a 19 Year Old Code Execution from WinRAR

又是一篇checkpoint的path traversal漏洞
关键点在于其整个fuzz过程中遇到的问题,其中的解决方法

文件格式
检验
patched检验

目前没有完全看完,看完细述

20200518

Reverse RDP – The Path Not Taken

依然是windows RDP的漏洞,主要是windows路径规范函数PathCchCanonicalize导致的路径穿越漏洞。windows的路径穿越漏洞,我是第一次看到案例,也不知道这类漏洞怎么利用,看到了可以关注一下。这个文章主要是思路很有意思,在一个函数中发现了漏洞,延伸一下,就有可能在所谓的安全函数中同样发现漏洞,而且只要是利用了这个函数的客户端都有这个洞,可以利用github搜一波,搜一下还真不少,可以挖一波
还有一点的就是,即使是官方api有漏洞,但是牛逼的程序员,依然可以通过编码check避免这个洞,真的强

20200517

How a double-free bug in WhatsApp turns to RCE

安卓whatapp下 double free漏洞到 RCE,这种通信工具预览解析的漏洞,应该挺多的,包括微信,钉钉等等,应该都有这类漏洞,安卓下的洞,我不熟悉,权当记录学习

whatapp漏洞ios环境搭建

20200514

win32k.sys漏洞挖掘思路解读

win32k内核模块的漏洞挖掘思路,跟小刀师傅的文章类似,都是windows窗口造成的漏洞。只是标题起的太大了,中文文章的通病。要是想挖该模块的洞,可以细读,文中绕过了现在两个主要的防护措施,锁,计数计时。这种漏洞,感觉应该有fuzz的方法,因为是在callback的时候出问题。可能bochs?

20200513

使用Bff fuzz nitro pdf

第一次看到使用bff挖到漏洞的,而且作者还说了他使用winafl,没挖到,用这个随随便便就挖到了很多了crash,找机会试一下

20200512

How to fuzz a server with American Fuzzy Lop

使用AFL的persistent mode fuzz kdot udp数据流,选取的目标是select函数,文章中提到的原始代码已经找不到了,但是可以在github上找到优化过后的一点影子udp-handler,我最近在研究这些,但是这里写的太粗了

20200510

Fuzzing ImageIO

最近忙着自己的新研究项目,有点忙,没有来得及更新阅读文章,主要是阅读的比较松散。
P0的文章,这个文章说的是fuzz闭源的macos下的imageio库,我看了一下文中提到的代码,愣是没看明白,这个老兄到底说的方法是啥,怎么还会用到代码块呢,由于睡前看的,没有看的特别细,等有时间详细看一下,感觉那个idapython的脚本可能会挺有启发的

20200506

Bugs on the Windshield: Fuzzing the Windows Kernel

checkpoint又放大招了,内容含量特别巨大,等以后遇到相关主题,再回来慢慢消化吧。把大概说一下,主要说Windows kernel fuzz,说了两种fuzz方式,一种kAFL,一种Syscall,kAFL可以理解,但是Syscall没有用过,暂时还不知道,下次留意。整个分析流程俩字,丝滑。文章唯一的遗憾是没有给出测试代码😭

20200505

Reverse RDP Attack: Code Execution on RDP Clients

checkpoint调查的几个RDP客户端

rdesktop:没有验证直接读stream长度

image

rdesktop:整数溢出

image

FreeRDP:整数溢出

image

可以发现前两种rdp客户端的这类漏洞逻辑,都是在处理接受的的数据流时,判断不严导致的漏洞,这类漏洞其实理论上来说很好找,只要使用ida跑一遍,之后再查看每个这类的实现代码即可,关键在于耐性研究,难度不大
网络数据流的漏洞寻找基本就2条

Robust input checks.
Robust decompression checks, to guarantee that no byte will be written past the destination buffer.

最后一个微软自带的rdp客户端漏洞属于目录穿越,主要在于这个函数

BOOL PathCanonicalizeA(
  LPSTR  pszBuf,
  LPCSTR pszPath
);

具体的逻辑的话,目前就不深究了,上面的几个案例已经让我获益匪浅了。

20200504

afl+preeny实现对交互应用的fuzz

afl+preeny在fuzz上的使用,文章说的太过简单了,没有交代为什么要用preeny,我能够直接更改wget代码去输入一些东西,为啥还要用preeny呢?等以后遇到了更好的案例再回来研究一下吧

IMPLEMENTING FUZZ LOGICS WITH DHARMA

ZDImrpowell的关于dharma的文章,文章里面使用的案例是基于pdfjs api语法生产的javascriptfuzz foxit reader,文章是19年1月的,时间优点远了,那时候应该泉哥的那种方法还没有开始用,但我觉得这种方法肯定是没有泉哥提到的直接利用domatofuzz来的效果好。但是优点就是语法可以我们自己定义,算是很好的一个学习dharma的文章吧。dharma我没有用过,不知道这类基于语法的fuzzer能不能用于特定的文件格式,因为我近期主要的fuzz格式依然还是文件格式,可以适当做一下尝试

20200503

CVE-2015-0057:从Windows内核UAF到内核桌面堆分配

ThunderJ师傅的文章,他和小刀师傅的文章一样,说的比较详细,不一样的就是,小刀师傅的比较晦涩难懂,这个师傅的文章要稍微浅显一点。这篇文章说的也是windows内核漏洞利用的。其中的bypass heap cookiebypass SMEP的技术点是以前看文章出现,但是说的不详细的部分。对于Windows内核部分的漏洞利用是很好的学习资料。

20200430

MS16-098-整数溢出与pool feng shui

经典的堆风水+CreateBitMap的漏洞利用方法。从开始的整数溢出,到缓冲区溢出,再通过CreateBitMap任意地址读写,这种方法我经常在别人的内核代码poc/exploit中看到,头一次看到这种详细讲解的,很给力。加入CheckList,学习一波

CVE-2017-8543 Windows Search漏洞分析及POC关键部分

同样是Windows Search服务的远程代码执行漏洞,漏洞的核心流程在这

image

这种自定义协议的交互过程,这类漏洞是如何发现的呢?其实这类漏洞的溢出的原理基本都是大相径庭的,这类的是通过纯人工逆向还是通过网络协议fuzz,我一直搞不懂,如果以后能够遇到说这类漏洞发现过程的,一定得好好学习一下。还有就是如何交互式的更改流量,能够自动化?都是很有价值的问题和研究方向。

20200429

Analyzing a Windows Search Indexer LPE bug

上次在看20200421文章的最后提到了竞态条件引起的漏洞,苦于没有案例,这个文章的漏洞就是这个案例。

image

first fetch根据共享内存pszURL的长度分配内存,second fetch根据共享内存pszURL的长度写入数据,如果pszURL不是共享内存,那么就没有任何问题,问题出在两次操作,没有对这个内存lock,导致firstsecond如果存在race condition,就会出现堆溢出,可以发现通过两个线程来读写,立马就能发现问题

DWORD __stdcall thread_putter(LPVOID param)
{
	ISearchManager *pSearchManager = (ISearchManager*)param;
	while (1) {
		pSearchManager->put_RootURL(L"AA");
		pSearchManager->put_RootURL(L"AAAAAAAAAA");
	}
	return 0;
}

DWORD __stdcall thread_getter(LPVOID param)
{
	ISearchRoot *pISearchRoot = (ISearchRoot*)param;
	PWSTR get_pszUrl;
	while (1) {
		pISearchRoot->get_RootURL(&get_pszUrl);
	}
	return 0;
}

20200428

今晚一直调试这个shadowsocksr-native混淆验证auth.c存在基于堆的越界写漏洞,没来得及阅读😭

20200427

CVE-2020-12138 Exploit Proof-of-Concept, Privilege Escalation in ATI Technologies Inc. Driver atillk64.sys

第一次看到这么详细如何写windows内核exploit的,其中说了如何从普通权限到system提权,分析了驱动处理流程,分析了如何分配内存进行exploit,非常好,而且文中涉及到的几个文章,质量也特别高,这个应该排在小刀师傅文章前面学习,可以作为系列学习

20200426

LibreSSL and OSS-Fuzz

文章说的是将oss-fuzz整合进LibreSSL发现了几个洞,很遗憾,我去年年末的时候,打算测这个库的,但是windows上需要测的太多了就耽误了,谁知道有这么多洞,以后真得注意了,很多库随便测测真的能测出不少东西,文章技术性的东西不多,给自己个警示

Adobe reader pdf调试技巧

主要介绍了adobeplugin机制和Javascript机制,最后调试javascript的方法,以后在学习Adobe相关漏洞应该很有用,可以作为参考资料

20200423

今天本来是打算读文章的,临时fuzz出现了一个crash,由于很蛋疼的原因,必须尽早分析,就分析了一晚上,最后最有意思的是,crash是由于代码在解析pe的时候因为IMAGE_SECTION_HEADERVirtualAddressSizeOfRawData过滤不严所导致,给我的感觉,是在分析样本😂,只是这个是64位环境下的,pe几个header稍微有点不同,我平时很少分析64位样本,pe 64 header准备不足,浪费了一点时间。如果有机会,可以分享一下具体的crash细节

20200422

CVE-2019-1215 Analysis of a Use After Free in ws2ifsl

内核UAF漏洞,文章的重点在于how to bypass kASLR, kCFG and SMEP

内核漏洞利用的文章就具体看过小刀师傅的从 CVE-2017-0263 漏洞分析到 Windows 菜单管理组件,小刀师傅说的是Windows特别复杂的菜单管理组件的double free漏洞,我到现在也才实验到poc阶段,exploit依然还是没懂,小刀师傅文章说的是特别详细,但是由于菜单组件太难了,啃着实验太恶心了

这篇文章比起小刀师傅的那个double free无论是从理解还是利用都简单很多,double free利用的是菜单组件的procedure

文章中利用named pipes进行的heap spray也特别有意思,很值得好好学习一下。因为目前能够正常exploitwindows环境也就kernel和使用js脚本类的比如pdf reader,浏览器这种的了。所以这两个方向碰到的exploit文章,能细看就尽力细看,能实验尽力实验

深入分析Adobe忽略了6年的PDF漏洞

读这个之前可以把这个文章Adobe Reader BMP/RLE heap corruption - CVE-2013-2729
也看一下,说的是在分析bitmap图片中造成的漏洞,因为我自己也挖到了几个windows bitmap图片处理的漏洞,所以对这类漏洞还是很感兴趣的
无论是CVE-2019-8014,还是CVE-2013-2729,都是由于整数溢出导致堆的任意地址可读写,进而达到RCE,这两篇文章有几个知识点,可以补充自己目前的短板

1. 整数溢出漏洞分析
2. 堆任意地址读写到RCE
3. pdf文件javascript的漏洞利用

尤其是后面的两个点,一直想找机会补充,等把unicorn学完(unicorn还差最后一个service案例),做这个,做的过程中可以结合泉哥的书中pdf漏洞利用的例子学习

20200421

从DirectX到Windows内核——几个CVE漏洞浅析

这个文章是很久之前star的,最近比较累,就翻出来看了一下,这个是湛沪实验室发现的,总共四个漏洞,都和DirectX有关,其所有的poc

CVE Function
CVE-2018-8405 D3DKMTCreateAllocation
CVE-2018-8401 D3DKMTSubmitCommand
CVE-2018-8400/8406 D3DKMTRender

四个洞,影响到了3个函数,仔细观察每个poc代码,都会发现代码都有很大的特色

        allocation.hDevice = deviceAry[0].hDevice;
	char runtimedata[0x200] = { 0 };
	memset(runtimedata, 0xee, 0x200);
	allocation.pPrivateRuntimeData = runtimedata;
	allocation.PrivateRuntimeDataSize = 0x200;
	allocation.hResource = NULL;
	allocation.NumAllocations = 1;
	D3DDDI_ALLOCATIONINFO2 allocationInfo = { 0 };
	allocationInfo.pSystemMem = runtimedata;
	allocationInfo.VidPnSourceId = 0;
	allocationInfo.Flags.OverridePriority = 1;
	allocationInfo.PrivateDriverDataSize = 0x60;
	char privateData[0x60] = { 0 };
	memset(privateData, 0xcc, 0x60);
	*(DWORD*)(privateData + 4) = 0x100;
	*(DWORD*)(privateData + 8) = 0x200;
	*(DWORD*)(privateData + 0xc) = 0x700;

参数特别多,各个参数有各种各样类型,感觉这种代码是通过某种方式格式化生成的。跟我以前看到checkpoint发现的内核漏洞代码有点像,我也特地fuzzcheckpointpoc代码,但是效果不好,运行了几天也没有出现任何crash

        /* generate data */
	long			ret = 0;
	std::seed_seq	seed(input_data.begin(), input_data.end());
	std::mt19937	rand_gen(seed);

	uint8_t         vert_num = ((rand_gen() % 0xff) + 1) & 0xff;
	PTRIVERTEX      vert = NULL;
	uint8_t         rect_num = ((rand_gen() % 0xff) + 1) & 0xff;
	PGRADIENT_RECT  rect = NULL;
	ULONG           ulMode;

	vert = (PTRIVERTEX)malloc(sizeof(TRIVERTEX) * vert_num);
	if (vert == NULL)
		FINISH(-1);
	memset(vert, 0, sizeof(TRIVERTEX) * vert_num);

	rect = (PGRADIENT_RECT)malloc(sizeof(GRADIENT_RECT) * rect_num);
	if (rect == NULL)
		FINISH(-2);
	memset(rect, 0, sizeof(GRADIENT_RECT) * rect_num);

	/* generate random vert array */
	for (uint8_t i = 0; i < vert_num; i++)
	{
		vert[i].x = rand_gen() & 0xffffffff;
		vert[i].y = rand_gen() & 0xffffffff;
		vert[i].Red = rand_gen() & 0xffff;
		vert[i].Green = rand_gen() & 0xffff;
		vert[i].Blue = rand_gen() & 0xffff;
		vert[i].Alpha = rand_gen() & 0xffff;
	}

	/* generate random rect array */
	for (uint8_t i = 0; i < rect_num; i++)
	{
		rect[i].UpperLeft = rand_gen() & 0xffffffff;
		rect[i].LowerRight = rand_gen() & 0xffffffff;
	}

	/* generate mode */
	/** ulMode
	 * GRADIENT_FILL_RECT_H
	 * GRADIENT_FILL_RECT_V
	 * GRADIENT_FILL_TRIANGLE
	**/
	switch (rand_gen() & 3)
	{
	case 0:
		ulMode = GRADIENT_FILL_RECT_H;
		break;
	case 1:
		ulMode = GRADIENT_FILL_RECT_V;
		break;
	case 2:
		ulMode = GRADIENT_FILL_TRIANGLE;
		break;
	}
	GradientFill(hdc1, vert, vert_num, rect, rect_num, ulMode);

我只是随意尝试了一下随机化各种参数,效果不好也很正常,就打算以后遇到了再说。今天在这看到了这种代码,感觉跟我使用的方式有点像,又有可能是使用domato那种语法生成的,或者别的什么测试方式,感觉这种代码很有意思,没准可以使用我的随机化的方法跑一下,可能会有效果,没试又怎么知道呢。
文章的最后提到了,可以添加多个线程修改及释放数据,来寻找是否存在竞争条件和TOC/TOU问题,这类的测试方法我是没有使用过的。下次如果碰到案例,可以学习一波

今天租的房子网不好,就看了一篇,不太行,得趁着这段时间累,可以多补补各种文章,多学习学习各种姿势

20200420

Grammar based fuzzing PDFs with Domato

Discord群里symon的文章,自从看完泉哥利用domato fuzz adobe reader的随笔之后,一直想找个时间研究一下究竟怎么使用domatofuzz adobejs api,苦于最近有几个exploit需要学习,没有抽出时间,趁着今晚特别累,把这篇文章看了几遍,这种grammar-based fuzz很有意思

简单的逻辑

domato ---> Debenu Quick PDF Library 脚本--->  BugId调用pdf解析器解析  ---> crash

简单叙述就是,利用domato产生能够生产正常pdfquick pdf library pdf脚本,执行脚本生产文件,之后利用bugid调用pdf解析器解析生成的pdf,逻辑不太难理解,难点在于domato生成脚本的语法相关操作。
比起基于代码覆盖的fuzz,这种方法有个致命的缺点,就是速度慢。但是也开辟了一条挖洞的有趣方式,值得学习学习

Fuzz in sixty seconds

这篇文章是symon文章中最后一步BugId的具体使用,为BugId作者所写。这种方法还是那句话,速度慢,但是如果利用在无法直接使用winafl fuzz.net程序不知道效果会怎么样,回头我试一下

最近不知道是不是换季的原因还是运动过度,特别累,上面的都是手机看的,实验也没完成,所以文章就多看点

20200419

idapython 检测危险函数

利用idapython检测危险函数,配合fuzz效果很好,利用自己写的脚本找到了几个洞,这里有个批量处理的部分很有用,重点记录一下

qemu逃逸CVE-2015-5165及CVE-2015-7504漏洞

漏洞形成原因在于ip包数据长度过滤不严,导致溢出,文章对整个漏洞形成的流程介绍的很详细,并且给出了完整的利用方法,其中的几个参考链接也很有用,有时间可以验证学习一下

20200418

sakuraのall fuzz:afl-unicorn

sakura大佬的文章,里面介绍了如何使用afl-unicorn fuzz linux程序,从基础教程开始使用afl-unicorn,其中还有几篇链接文章值得学习,以前只是在恶意代码分析中用到过afl-unicorn,目前没有思路用在浏览器fuzz,等大佬更新学习一波