该文被密码保护。 阅读全文
摘要:
0x00 UAF利用原理 uaf漏洞产生的主要原因是释放了一个堆块后,并没有将该指针置为NULL,这样导致该指针处于悬空的状态(这个指针可以称为恶性迷途指针),同样被释放的内存如果被恶意构造数据,就有可能会被利用。 0x01 UAF漏洞的利用步骤 (1)先精心构造一个迷途指针 (2)再精心构造数据填 阅读全文
摘要:
0x00 堆chunk的结构 一个 heap chunk 是如下的结构: 如果本 chunk 前面的 chunk 是空闲的,那么第一部分 prev_size 会记录前面一个 chunk 的大小,第二部分是本 chunk 的 size ,因为它的大小需要8字节对齐,所以 size 的低三位一定会空闲出 阅读全文
摘要:
0x00 格式化参数 %n格式化参数比较独特,因为它在写数据时没有任何输出,与读数据然后显示相反,格式化函数遇到格式化参数%n时,它将输出已经被存放到对应函数参数地址的字节数。 0x01 格式化字符漏洞 当程序员用printf(string)语句代替printf("%s",string)语句输出字符 阅读全文
摘要:
0x00 利用要点 1.申请一块非常大的块. 2.精心构造size覆盖top chunk的chunk header. 3.调用malloc()实现任意地址写 0x01 申请一块非常大的块. 申请一个负数大小的块就可。一般是-1. malloc(-1) 0x02 精心构造size覆盖top chunk 阅读全文
摘要:
0x01 fastbin fastbin所包含chunk的大小为16 Bytes, 24 Bytes, 32 Bytes, … , 80 Bytes。当分配一块较小的内存(mem<=64 Bytes)时,会首先检查对应大小的fastbin中是否包含未被使用的chunk,如果存在则直接将其从fastb 阅读全文
摘要:
0x00 前言 漏洞利用中必不可缺的部分就是shellcode,不会编写shellcode和咸鱼有什么区别,跳出咸鱼第一步。 0x01 系统调用 通过系统调用execve函数返回shell execve函数在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序。execve()用来执行 阅读全文