avatar
Articles
38
Tags
15
Categories
32

Home
Archives
Tags
Categories
About
ret2ver
Home
Archives
Tags
Categories
About

ret2ver

AFL源码阅读 - afl-fuzz
Created2022-03-14|AFL
简介afl-fuzz 便是 afl 中的核心文件,模糊测试的代码都在该文件中,从功能上大致可以分为三个部分: 初始配置:进行初始化的配置操作 模糊测试:fuzz 的主要循环过程 变异策略:测试用例的变异策略和实现 初始配置输入参数处理在设置完随机数种子(使用时间 + pid)后,会进行输入参数的处理过程: 12345while ((opt = getopt(argc, argv, "+i:o:f:m:b:t:T:dnCB:S:M:x:QV")) > 0) switch (opt) { // opt } 大致的可输入参数如下: 1234567891011121314151617181920212223242526272829303132afl-fuzz 2.57b by <lcamtuf@google.com>afl-fuzz [ options ] -- /path/to/fuzzed_app [ ... ]Required parameters: -i dir - input director ...
AFL源码阅读 - afl-clang-fast
Created2022-03-14|AFL
简介前面学习了 afl-as ,但是可以发现前面的插桩技术十分原始且神奇,现在更为通用的插桩方式是通过 llvm pass 进行插桩,对应的也就是 afl-clang-fast 。 LLVMllvm 的大体框架如下: Clang 是 LLVM 项目的一个子项目,它是 LLVM 架构下的 C/C++/Objective-C 的编译器,是 LLVM 前端的一部分。相较于GCC,具备编译速度快、占用内存少、模块化设计、诊断信息可读性强、设计清晰简单等优点。 以 Clang 为例,从源码到机器码的流程如下: 其中的 LLVM Pass 便是用户自定义的处理 IR 的过程,可以进行优化、插桩、分析等功能。 AFL中的afl-clang-fastAFL 中的 llvm mode 可以实现编译器级别的插桩,主要包含以下三个文件: afl-clang-fast.c :本质上是 clang 的 wrapper ,和 afl-gcc 类似 afl-llvm-pass.so.cc :通过 afl-clang-fast 调用 clang 时将 pass 插入 LLVM 中 afl-l ...
AFL源码阅读 - afl-as
Created2022-03-13|AFL
main12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182/* Main entry point */int main(int argc, char** argv) { s32 pid; u32 rand_seed; int status; u8* inst_ratio_str = getenv("AFL_INST_RATIO"); struct timeval tv; struct timezone tz; clang_mode = !!getenv(CLANG_ENV_VAR); if (isatty(2) && !getenv("AFL_QUIET")) { SAYF(cCYA "afl-as " cBRI ...
AFL源码阅读 - afl-gcc
Created2022-03-13|AFL
main首先从 main 来看: 123456789101112131415161718192021222324252627282930313233343536373839/* Main entry point */int main(int argc, char** argv) { if (isatty(2) && !getenv("AFL_QUIET")) { SAYF(cCYA "afl-cc " cBRI VERSION cRST " by <lcamtuf@google.com>\n"); } else be_quiet = 1; if (argc < 2) { SAYF("\n" "This is a helper application for afl-fuzz. It serves as a drop-in replacement\n" "f ...
CVE-2021-43226 :CLFS 中的栈溢出漏洞
Created2022-02-05|PwnWindowsKernelCLFSCVE
漏洞分析根据 patch 可以得到主要更改了 CClfsLogFcbVirtual::QueryLogFileInfo 函数,其中判断了 a7 指向的值,当他大于 0x78 的时候也直接设为 0x78 ,并在接下来继续使用: 根据函数名,查询 MSDN ,可以推断出可能 GetLogFileInformation 函数可以触发到该路径: 12345CLFSUSER_API BOOL GetLogFileInformation( [in] HANDLE hLog, [in, out] PCLFS_INFORMATION pinfoBuffer, [in, out] PULONG cbBuffer); 其中传入了一个 pinfoBuffer ,结构为 PCLFS_INFORMATION : 12345678910111213141516171819typedef struct _CLS_INFORMATION { LONGLONG TotalAvailable; LONGLONG CurrentAvailab ...
CVE-2022-21882 :win32k 中的相对偏移读写漏洞
Created2022-02-04|PwnWindowsKernelwin32kCVE
漏洞成因漏洞起源于 CVE-2021-1732 ,原因就是 xxxClientAllocWindowClassExtraBytes 可以被 hook 导致返回的 pExtraBytes 受用户所控,在此期间如果调用 NtUserConsoleControl 则会将 pExtraBytes 的解释方式改变为内核态的相对偏移,进而造成内核的越界写。而微软在 2022 年 1 月又 patch 另外几个相似的地方,也就是触发 xxxClientAllocWindowClassExtraBytes 函数的别的路径。所以这几个漏洞和 CVE-2021-1732 十分相似,本漏洞介绍的便是 xxxSwitchWndProc 路径。相关的知识不再介绍,可以看之间的博文 。 漏洞利用xxxSwitchWndProcxxxSwitchWndProc 路径如何触发有很多方法,例如 CVE-2019-1458 的方法或者使用未公开的 NtUserMessageCall 方法,如下所示: 1234567891011121314151617181920212223242526272829303132333435 ...
CVE-2021-34486 :ETW 中的 UAF 漏洞
Created2022-01-21|PwnWindowsKernelETWCVE
前置知识Event Tracing For Windows (ETW)Event Tracing For Windows (ETW) 是 Windows 中用于应用程序或内核事件追踪的功能,开发人员可以通过 ETW 的相关 API 来追踪在开发调试过程中的相关日志信息,从而帮助开发人员更好的理解程序和系统的处理流程。在 Windows 中可以使用 Windows Performance Analyzer 分析 ETW 的日志信息,具体而言可以参考 这篇文章 。 在 ETW 中有一个比较重要的方法 NtTraceControl ,该方法是 ETW 的中心控制点,它支持许多管理跟踪会话的用户模式 API 。其定义如下: 12345678NTSTATUS NtTraceControl ( ULONG FunctionCode, PVOID InBuffer, ULONG InBufferLen, PVOID OutBuffer, ULONG OutBufferLen, ULONG *ReturnSize); 该函数的各种支持的 Function ...
CVE-2021-38001 :V8 IC 中的类型混淆漏洞
Created2022-01-11|PwnBrowserV8CVEInline Cache
信息收集该 CVE 就是 TFC 上昆仑打的,issue 页面暂未公开,patch 如下: 可以看出来漏洞应该和 CVE-2021-30517 十分类似,为 receiver 和 holder 的类型混淆,更确切来说是把 holder 所对应的 handle 给了 receiver 而导致的类型混淆。 在 [github](https://github.com/vngkv123/articles/blob/main/CVE-2021-38001.md) 上可以找到验证的 poc ,分为两个文件,首先是 1.mjs : 123export let x = {};export let y = {};export let z = {}; 随后是 2.mjs : 12345678910111213141516171819202122232425262728293031323334353637383940import * as module from "1.mjs";function poc() { ...
CVE-2021-1732 :win32k 中的相对偏移读写漏洞
Created2022-01-11|PwnWindowsKernelwin32kCVE
前置知识Windows 桌面编程我们可以直接用 Visual Studio 生成以下的默认模板: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178// test.cpp : 定义应用程序的入口点。 ...
CVE-2021-31956 :NTFS 模块的池溢出漏洞
Created2021-12-27|PwnWindowsKernelNTFSCVE
漏洞分析漏洞存在于 ntfs.sys 驱动中的 NtfsQueryEaUserEaList 函数: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778_QWORD *__fastcall NtfsQueryEaUserEaList(_QWORD *a1, __int64 ea_blocks_for_file, __int64 a3, __int64 out_buffer, unsigned int out_buf_length, unsigned int *a6, char a7){ unsigned int eaList_iter; // ebx unsigned int padding; // er15 _FILE_GET_EA_INFORMATION *current_ea; // r12 unsigned int nex ...
12…4
avatar
Vergissmeinnicht
Articles
38
Tags
15
Categories
32
Follow Me
Announcement
Live Long And Pwn.
Recent Post
AFL源码阅读 - afl-fuzz2022-03-14
AFL源码阅读 - afl-clang-fast2022-03-14
AFL源码阅读 - afl-as2022-03-13
AFL源码阅读 - afl-gcc2022-03-13
CVE-2021-43226 :CLFS 中的栈溢出漏洞2022-02-05
Categories
  • AFL4
  • BlockChain2
    • WriteUp2
  • Crypto3
    • FMS1
    • SM41
      • DFA1
    • WriteUp1
Tags
Back-End CFG HEVD JerryScript Kernel Linux Musl-gcc Pwn SEH SMEP SafeSEH UAF Windows WriteUp rop
Archives
  • March 20224
  • February 20222
  • January 20223
  • December 20213
  • October 20218
  • September 20213
  • June 20212
  • April 20212
Info
Article :
38
UV :
PV :
Last Push :
©2020 - 2022 By Vergissmeinnicht
Framework Hexo|Theme Butterfly