
漏洞利用技巧
九层台
这个作者很懒,什么都没留下…
展开
-
堆中获取地址和劫持执行流的方法
栗子https://github.com/tower111/software.git 0x01获取栈地址 详细writeup:https://tower111.github.io/2018/08/30/ISG-babynote/ 原理:在fast bin是单链在内存中保存,在fd位置处会写入next chunk的地址,这个地址可以用来获取heap_base。 栗子:babynote 需要...原创 2018-09-02 19:27:59 · 2053 阅读 · 3 评论 -
pwnable(simple login)leave和ret的深入研究
通常栈溢出获取shell的方法是覆盖返回地址,但是如果溢出只允许覆盖到ebp该怎么办呢?Leave的作用相当==mov esp,ebp和pop ebpWin32汇编中局部变量的使用方法可以解释一个很有趣的现象:在DOS汇编的时候,如果在子程序中的push指令和pop指令不配对,那么返回的时候ret指令从堆栈里得到的肯定是错误的返回地址,程序也就死掉了。但在Win32汇编中,push指令和pop...原创 2018-09-30 13:32:24 · 685 阅读 · 0 评论 -
hctf[pwn] the-end
void __fastcall __noreturn main(__int64 a1, char **a2, char **a3){ signed int i; // [rsp+4h] [rbp-Ch] void *buf; // [rsp+8h] [rbp-8h] sleep(0); printf("here is a gift %p, good luck ;)\n", &a...原创 2018-11-12 22:07:40 · 2084 阅读 · 7 评论 -
hctf[pwn]babyprintf_ver2
0x01程序分析程序给出了data段的地址,然后允许向这个地址处输入0x1ff个字节。这个data段到底存的是什么呢?pwndbg> print $rbx + $rax$1 = 0x555555756011pwndbg> x /50xg 0x5555557560110x555555756011: 0x7200676664647364 0x200000000000646c...原创 2018-11-15 22:21:14 · 873 阅读 · 0 评论 -
pwnable(echo1)【栈溢出shellcode模板】
这个题目可以作为一个栈溢出使用shellcode的模板,它除了给出栈溢出,关闭了NX和canary保护其他的什么都没有给。这里的溢出,看一下它的上一级输入1会执行它。我的想法是没有地址我就找rop来泄露libc,或者栈的地址但是看了一下没有能用的rop换个思路,导入shellcode,用jmp esp指令作为跳转(这个可以作为导入shellcode的一种通用思路)。查了一下en...原创 2019-01-25 16:02:58 · 781 阅读 · 0 评论 -
pwnable(echo2)【64位格式化字符串&uaf】
和echo1差不多都没开启任何保护,有一个格式化字符串漏洞64位格式化字符串和32位有些不同64位寄存器是靠寄存器来传参的(说白了格式化字符串就是打印参数的值,或者向参数位置指向的地址处写入数据)64位寄存器传参的顺序: rdi, rsi, rdx, rcx, r8, r9这是执行printf时候的状态。这个是输出的数据0x1cd605f,0x7f81ace85790,0x70252...原创 2019-01-26 12:01:27 · 779 阅读 · 3 评论 -
ret2dlresolve利用方法
使用场景:一遍运行(延迟绑定技术,只有在第一次调用该函数时才会调用_dll_runtime_resolve函数)没有输出,没有system函数。需要:1.向一个固定地址写入数据(bss段)2.能够劫持程序执行流linux下c函数是放在libc库里面的ldd pwn01 linux-gate.so.1 => (0xf7ef2000) libc.s...原创 2019-05-10 16:16:23 · 2439 阅读 · 5 评论