摘要: 一种新的姿势:程序try/catch抛出异常之绕过canary 我前面发了不少关于绕过canary的姿势,先总结一下,现在绕过canary的姿势有泄露,爆破,格式化字符串绕过,多线程劫持TLS绕过, stack_smashing,数组越界等等,今天介绍一种新的姿势,就是程序处理异常时,如果异常被上一 阅读全文
posted @ 2024-04-13 15:04 CH13hh 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 进阶 stack smashing--canary 报错利用 && environ泄露栈地址 这部分是对进阶stack smashing的使用,以及对 environ的认识,我们可以看一个buu上具体的题目 题目连接 https://buuoj.cn/challenges#wdb2018_guess 阅读全文
posted @ 2024-04-12 14:06 CH13hh 阅读(46) 评论(0) 推荐(1) 编辑
摘要: stack smashing--canary报错利用 一般这种都是考察点比较狭窄,因为这个漏洞在libc2.23以上就被修复了,漏洞产生的原因是因为当覆盖掉canary的时候程序会报错,程序会执行 __stack_chk_fail 函 数来打印 __libc_argv[0] 指针所指向的字符串,如果 阅读全文
posted @ 2024-04-11 23:29 CH13hh 阅读(23) 评论(0) 推荐(1) 编辑
摘要: 格式化字符串走过的坑 pwn109 今天做的一道题有一个坑我调试半天终于打通了,格式化字符串的坑,确实不少,东西也比较多容易忘记,怎么说呢,功夫在平时,经验少了 老规矩先看一下保护 Full RELRO意味着got不能修改也就是不能通过格式化字符串漏洞来改got表,但是nx保护关闭了,也就是我们可以 阅读全文
posted @ 2024-04-08 21:10 CH13hh 阅读(188) 评论(0) 推荐(2) 编辑
摘要: 劫持TLS绕过canary pwn88 首先了解一下这个东西的前提条件和原理 前提: 溢出字节够大,通常至少一个page(4K) 创建一个线程,在线程内栈溢出 原理: 在开启canary的情况下,当程序在创建线程的时候,会创建一个TLS(Thread Local Storage),这个TLS会存储c 阅读全文
posted @ 2024-04-06 14:18 CH13hh 阅读(133) 评论(0) 推荐(2) 编辑
摘要: 花式栈溢出 在这之前确实对这方面了解很少,一般这种花式栈溢出不仅仅要求你能发现漏洞,最主要的是你要有随机应变的能力 这个题是一个64位的题目看一下保护 canary 和 nx保护都开了,我们用ida打开看一下 那么程序主要是要你给一个地址和一个值,他会把你给的值放入你给的地址里面,然后就没了,看起来 阅读全文
posted @ 2024-04-05 17:08 CH13hh 阅读(53) 评论(0) 推荐(1) 编辑
摘要: PWN49 用ida打开我们发现是静态编译的,所以先要通过libc库来打是不可能的了,程序里面有一个栈溢出点,找一下有没有system函数,发现并没有 那么我们找一下有没有mprotect函数如果有这个那么我们可以把一段地址改成可读可写可执行权限,然后写入我们的shellcode就可以执行了,发现确 阅读全文
posted @ 2024-04-02 12:39 CH13hh 阅读(25) 评论(0) 推荐(1) 编辑
摘要: PWN53 那么先看保护 虽然没有开canary但是本题在ida打开看见他是模拟了canary的效果,不同的是他的是固定的canary,但是一样要爆破 而且发现还有后门函数 在ctfshow函数我们发现v5=0,那么我们只要不输入回车(acii:10)可以一直往数组里面写入数据,然后它会把v2变成无 阅读全文
posted @ 2024-03-31 22:40 CH13hh 阅读(26) 评论(0) 推荐(0) 编辑
摘要: PWN31 使用checksec查看保护 发现除了canary剩下保护全开,那么就没有前面几个题目那么简单了,ida打开看见他给了我们main函数地址 虽然开了pie但是在他们之间的偏移是一定的,那么我们就可以通过他给的main函数的真实地址减去偏移得到文件(elf)的基地址,然后puts_plt 阅读全文
posted @ 2024-03-31 22:23 CH13hh 阅读(43) 评论(0) 推荐(0) 编辑