house of emma 原理 那么之前介绍过house of kiwi,它是在_IO_file_jumps可以写的情况下的利用,那如果不可写呢,house of emma就是对其的补充,也可以说是进阶 如果 vtable 指向的 _IO_file_jumps 不可写,那么 House of Kiwi 这种攻击手法就会失效。这时候就需要考虑劫持 vtable 。但在新版 glibc ,之前的劫持
house of kiwi(shell及orw例题分析) 原理 当程序正常调用 exit 退出时可以通过劫持 vtable 上的 _IO_overflow 来实现程序流劫持,例如 FSOP 。然而,如果程序调用 _exit 退出,那么将不会进行 IO 相关的清理工作,而是直接进行系统调用。因此需要主动触发异常退出来调用 vtable 上的相关函数,这就衍生出了 House of Kiwi 这一攻击
malloc_init_state_attack 源码及原理 这是一种不太常见的攻击方法,本身并不难 这里先介绍一下malloc_consolidate函数,malloc_consolidate 是glibc中的一个函数,用于管理堆的内存分配。它在 malloc 和 free 操作中起重要作用,负责合并释放的内存块以减少碎片化。 具体的源代码就不在这里放了,我们只需要知道malloc_consol
sandbox之侧信道攻击 原理 侧信道攻击(Side-channel Attack,简称 SCA)是一类通过观察计算机系统的物理特性来推断内部信息的攻击手段。这些物理特性可能包括耗电量、时间延迟、热量、功率、噪声等,这些都可以在设备执行特定计算时产生可观察的信号。PWN 侧信道攻击是指在程序没有正常回显的情况下通过执行精心构造后的数据,获取一些程序的现象或反馈来确定最终正确的flag,这种反馈比
原理 在 glibc 中,可以通过 __register_printf_function 函数为 printf 格式化字符串中的 spec (例如 %X 中的 X)注册对应的函数。而维护字符与函数的映射关系的结构有 __printf_function_table 和 __printf_arginfo_table 。位置关系如下图所示(实际位置在哪里以及相对位置如何不重要,glibc 只通过 __p
off by null低版本利用 off by one的漏洞利用思路是很明显的,有一个字节的溢出,并且这个字节里面的数据可以任由我们控制,但是off by null不同,虽然都是有一个字节溢出,但是这个字节只能是空的,所以off by null比 off by one条件要弱一些,本文会从高低版本两个部分,分别介绍off by null的利用方式 低版本可控pre_size 首先让我们对利用原理做
原理讲解: SECCOMP_RET_TRACE 是 seccomp 过滤器可以返回的一种动作值。其主要作用是在特定系统调用被触发时,通知一个基于 ptrace(2) 的追踪器(tracer)来处理该系统调用。具体机制如下: 过滤器配置: 进程设置 seccomp 过滤器,指定哪些系统调用应返回 SECCOMP_RET_TRACE。 系统调用触发: 当受限进程执行一个被过滤器标记为SECCO
shellcode执行 之前聊了聊shellcode的基础,windows与linux原理相同,方便起见直接使用cs生成 指针执行 将shellcode存储与数组,并取数组地址,将地址转换为void无参数函数指针,并去执行,代码如下 #include <iostream> #include <Windows.h> // 指定链接器选项,修改.data段为可读、可写、可执行
本题来源于源鲁杯第一轮pwn的困难题,向程序发送了msg之后会判定是否符合proto结构,符合则开启沙箱仅允许执行read、write、fstat、alarm、exit_group,并执行msg里的shellcode,shellcode要求范围在可见字符且长度不大于0xc7 protobuf结构体 前置基础 protobuf结构体/proto文件示例 protobuf结构体示例:device.pr
相关结构体 malloc_state struct malloc_state { /* Serialize access. */ mutex_t mutex; /* Flags (formerly in max_fast). */ int flags; /* Fastbins */ mfastbinptr fastbinsY[NFASTBINS]; /* Ba
分析 查看boot.sh,开启了smep用户代码不可执行 #!/bin/bash qemu-system-x86_64 \ -initrd rootfs.cpio \ -kernel bzImage \ -append 'console=ttyS0 root=/dev/ram oops=panic panic=1' \ -monit
中等汽车驾驶助手 代码审计这里是个固定加密,没什么用,这里可以通过两次ls来让input_times>2绕过这个加密 这里有个格式化字符串漏洞,可以利用%8$s泄露出rand,但是需要注意要p.recv(10),调试的时候发现这个存到堆上的不只是8个字节,又因为strcmp是遇到\x00停止,所以需要用p.recv(10)接受堆上\x00前所有数据作为随机数 发现只要是在s1中
house of apple2之_IO_wfile_overflow 原理 house of apple系列是由山海关的大pwn佬roderick01师傅于2022年提出来的一种io利用方法,其基于劫持IO_FILE->wide_data,来控制程序执行流 而这种方式相较于之前提出来的各种利用方式,要求少了很多,使用条件只有以下三条 已知heap地址和glibc地址 能控制程序执行IO操作
kernel pwn从小白到大神(一) 前言:本文章是kernel的开始,从前置理论基础到环境搭建,最后到kernel pwn的实践,一条龙服务啊!!! kernel前置知识 操作系统内核 操作系统内核(Operating System Kernel)也是一种软件,负责在硬件和软件之间架起一座桥梁,确保系统的稳定和高效运行。 操作系统内核是抽象的一种概念,本质上和普通进程一样(代码+数据),不同
1. 引言 模糊测试与 ASan 的概述 模糊测试(Fuzz Testing)是一种自动化的软件测试技术,旨在通过向程序提供随机或异常输入来检测其漏洞与崩溃。它能够有效捕捉输入处理中的异常,特别是与内存相关的问题。模糊测试在寻找未知错误方面尤为有用,因为它无需预定义输入模式,通过生成各种异常数据,增加程序失效的可能性。 AddressSanitizer(ASan)是一种强大的内存错误检测工具,主要