栈迁移SROP[SWPUCTF 2025 秋季新生赛]gift 1234567891011int __fastcall main(int argc, const char **argv, const char **envp){ __int64 v3; // rcx __int64 v4; // r8 __int64 v5; // r9 _UNKNOWN *buf_; // [rsp+28h] [rbp+8h] BYREF init(argc, argv, envp, v3, v4, v5, 0, 0, 0, 0); puts("Welcome to the w
ORW+栈迁移SROP[ NewStarCTF 2025 ]only_read 一个开启了沙箱的 SROP: 123456ssize_t vuln(){ _BYTE buf[16]; // [rsp+0h] [rbp-10h] BYREF return read(0, buf, 0x100u);} 123456789101112131415161718192021222324252627282930__int64 sandbox(){ __int64 v1; // [rsp+8h] [rbp-8h] v1 = seccomp_init(21474181
SROP 链利用1)BUUCTF-ciscn_2019_es_7(BABY_SROP) 发现这里 buf 是写在栈上的,我们需要自己去寻找栈上的地址 ubuntu18,先换一下 2.27 的 libc, 发现有很明显的系统调用以及栈溢出,觉得是 SROP 我们知道 buf 的值是存入 rsi 的,我们可以通过 rsi 的变化去计算输入的东西压入栈后的偏移: 看一下初始的 RSI 值: c 运行,之后输入 aaaa 去看一下 RSI,计算偏移: 0xe08 - 0xcf0 = 0x118 先明确思路,我们需要构造 execve(‘/bin/sh\
[SWPUCTF 2024 秋季新生赛]不可名状的东西栈迁移 + ret2libc + ORW 注意 read 读取到缓冲区的地址 buf,在 rbp-0x80 处,记好,有大用处。 12345678-0000000000000080 // Use data definition commands to manipulate stack variables and arguments.-0000000000000080 // Frame size: 80; Saved regs: 8; Purge: 0-0000000000000080-0000000000000080 _BY
pwnable.tw orw 例题这里用 pwnable.tw 网站上的 orw 例题来讲解 orw 的用法:这里给出 flag 在/home/orw/flag 文件下 三连获取基本信息:32 位开启 canary,程序基本流程是输入字符串。看一下 IDA 的情况: 找到 main 函数,发现一开始执行了 orw_seccomp() 函数,是 orw 题目,查一下系统调用: 目前发现我们可以利用的有 open,read,write ,这三个系统调用已经足够我们获取 flag 了。 这里 read 就是一个非常浅显的栈溢出漏洞,直接往里面填写东西就可以了
[SWPUCTF 2024 秋季新生赛]出题人你到底干了什么? main 函数123456789101112int __fastcall main(int argc, const char **argv, const char **envp){ size_t n; // rax _BYTE buf[88]; // [rsp+0h] [rbp-60h] BYREF char *s; // [rsp+58h] [rbp-8h] s = s_; n = strlen(s_); write(1, s_, n); read(0, buf, 0x200u); return 0;
OFF-BY-NULL Tcachebin该利用链利用了 **Off-By-Null **漏洞来触发 **Backward Consolidation(向后合并)**从而制造出 **Overlapping **。接着,它通过 Unsorted Bin 泄露 libc 的基址,并利用 double-free 进行 Tcache Poisoning,将 __free_hook 覆盖为 one_gadget 从而获取 shell。 hitcon_2018_children_tcache(Off-By-NULL) main123456789101112131415161718192021222324
OFF-BY-ONE 例题分析npuctf_2020_easyheap题目提示 ubuntu18.04 版本,高版本 libc 2.27 tcachebin attack( tcache poisoning ) 12345678910111213141516171819202122232425262728293031323334int __fastcall main(int argc, const char **argv, const char **envp){ char buf[4]; // [rsp+4h] [rbp-Ch] BYREF unsigned __int64
[ISCC 2024] shopping 多线程堆 libc-2.31参考资料:https://blog.csdn.net/j284886202/article/details/139119047 程序分析:123456789101112131415161718192021222324252627__int64 __fastcall main(int a1, char **a2, char **a3){ pthread_t newthread; // [rsp+28h] [rbp-118h] BYREF char s[264]; // [rsp+30h] [rbp-1