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
部分的tracer
和wrap
了,wrap
在fuzz 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
过程中最主要的三要素
- 是否存在样例代码
- 是否能够自己编译
- 是否存在可用的测试样例
afl-showmap
的使用
在测试前,afl-cmain
和afl-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,这种通信工具预览解析的漏洞,应该挺多的,包括微信,钉钉等等,应该都有这类漏洞,安卓下的洞,我不熟悉,权当记录学习
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长度
rdesktop:整数溢出
FreeRDP:整数溢出
可以发现前两种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
ZDI
的mrpowell
的关于dharma的文章,文章里面使用的案例是基于pdf
中js api
语法生产的javascript
去fuzz foxit reader
,文章是19年1月的,时间优点远了,那时候应该泉哥的那种方法还没有开始用,但我觉得这种方法肯定是没有泉哥提到的直接利用domato
去fuzz
来的效果好。但是优点就是语法可以我们自己定义,算是很好的一个学习dharma
的文章吧。dharma
我没有用过,不知道这类基于语法的fuzzer
能不能用于特定的文件格式,因为我近期主要的fuzz
格式依然还是文件格式,可以适当做一下尝试
20200503
CVE-2015-0057:从Windows内核UAF到内核桌面堆分配
ThunderJ师傅的文章,他和小刀师傅的文章一样,说的比较详细,不一样的就是,小刀师傅的比较晦涩难懂,这个师傅的文章要稍微浅显一点。这篇文章说的也是windows
内核漏洞利用的。其中的bypass heap cookie
和bypass SMEP
的技术点是以前看文章出现,但是说的不详细的部分。对于Windows内核部分的漏洞利用是很好的学习资料。
20200430
MS16-098-整数溢出与pool feng shui
经典的堆风水+CreateBitMap
的漏洞利用方法。从开始的整数溢出,到缓冲区溢出,再通过CreateBitMap
任意地址读写,这种方法我经常在别人的内核代码poc/exploit
中看到,头一次看到这种详细讲解的,很给力。加入CheckList
,学习一波
CVE-2017-8543 Windows Search漏洞分析及POC关键部分
同样是Windows Search
服务的远程代码执行漏洞,漏洞的核心流程在这
这种自定义协议的交互过程,这类漏洞是如何发现的呢?其实这类漏洞的溢出的原理基本都是大相径庭的,这类的是通过纯人工逆向还是通过网络协议fuzz,我一直搞不懂,如果以后能够遇到说这类漏洞发现过程的,一定得好好学习一下。还有就是如何交互式的更改流量,能够自动化?都是很有价值的问题和研究方向。
20200429
Analyzing a Windows Search Indexer LPE bug
上次在看20200421
文章的最后提到了竞态条件引起的漏洞,苦于没有案例,这个文章的漏洞就是这个案例。
first fetch
根据共享内存pszURL
的长度分配内存,second fetch
根据共享内存pszURL
的长度写入数据,如果pszURL
不是共享内存,那么就没有任何问题,问题出在两次操作,没有对这个内存lock,导致first
到second
如果存在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调试技巧
主要介绍了adobe
的plugin
机制和Javascript
机制,最后调试javascript
的方法,以后在学习Adobe
相关漏洞应该很有用,可以作为参考资料
20200423
今天本来是打算读文章的,临时fuzz
出现了一个crash
,由于很蛋疼的原因,必须尽早分析,就分析了一晚上,最后最有意思的是,crash
是由于代码在解析pe
的时候因为IMAGE_SECTION_HEADER
的VirtualAddress
和SizeOfRawData
过滤不严所导致,给我的感觉,是在分析样本😂,只是这个是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
也特别有意思,很值得好好学习一下。因为目前能够正常exploit
的windows
环境也就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
发现的内核漏洞代码有点像,我也特地fuzz
了checkpoint
的poc
代码,但是效果不好,运行了几天也没有出现任何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
的随笔之后,一直想找个时间研究一下究竟怎么使用domato
去fuzz adobe
的js api
,苦于最近有几个exploit
需要学习,没有抽出时间,趁着今晚特别累,把这篇文章看了几遍,这种grammar-based fuzz
很有意思
简单的逻辑
domato ---> Debenu Quick PDF Library 脚本---> BugId调用pdf解析器解析 ---> crash
简单叙述就是,利用domato
产生能够生产正常pdf
的quick 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
,等大佬更新学习一波