kernel heap spray内核堆喷射 当内核中现有的程序没有办法对UAF后的堆块进行操作的时候,可以利用以下的办法来申请释放之后的堆块,然后控制其内容。参考Linux Kernel universal heap spray这篇文章中给出的两种方法,还是特别有效的。 利用msgsnd我们可以利 ...
红明谷2021
Maybe_fun_game程序分析这道题目挺考验逆向的能力的,需要将程序比较看的清楚。 程序有四个功能new、del、edit和show功能。我们先这几个函数放在一边,这个程序的输入输出的结构是比较特殊的,我们接下来对这两个函数进行分析。首先需要先介绍一下这些程序进行输入输出的结构,进行输入输出之 ...
dasctf2021
DASCTF2021fruitpie思路这题可以malloc一个指定size的chunk,并且返回chunk的地址,然后可以指定一个偏移,向偏移中写入0x10个字节的数据。这题申请很大的空间以后heap的地址和libc的基地址是相对固定的。 申请一个很大的空间,要尽可能的大 拿到heap地址根据相 ...
linux_kernel_heap
linux kernel heapBuddy System伙伴系统 采用二分法分配内存 分配的内存大小必须是2的整数次幂,2的指数(幂)就称为一个块的order。 块的大小单位为一个页的大小,比如一个页为4k的系统,order为0的堆块的大小就是(2^0)*4K。 分配连续的物理空间 memory ...
roarctf_2a1
2a1程序分析 程序的主要功能有3个: 程序首先会给你alarm的地址,用它可以求出libc的基址 程序会讲你指定的地址上的八个字节输出出来 你先制定一个地址,程序申请0x30的堆栈空间,你可以向里面输入东西,然后程序通过30行的*v8=v9将堆地址写到你制定的地址上 利用思路一开始想伪造 ...
xyb_babydev
babydev详解程序分析首先打开文件系统查看初始化的脚本init #!/bin/sh mount -t proc none /procmount -t sysfs none /sysmount -t devtmpfs devtmpfs /devchown root:root flagchmod 4 ...
hxb_only_add
only_add思路realloc的利用 realloc申请的堆块比当前堆块小时,如果差值足够一个chunk就切割当前chunk realloc大小为0的堆块时就会释放当前的chunk 然后程序当申请堆块往堆块里面写入数据时可以额外写一个字节offset-by-one 通过realloc和 ...
hxb_blend_pwn
blend_pwn思路 利用格式化字符串漏洞泄漏程序的基址 申请两个堆块,利用UAF泄漏出堆的地址heap,并且在一个堆块上布置好数据(第三部结束后程序栈会跳到这里来执行) payload0 = 0x10*b'a'+p64(bss)+p64(rdi)+p64(t+pelf.got['puts']) ...
hxb_pwn_printf
pwn_printf思路程序有一个存在栈溢出的函数vul 连续输入0x10个30以后,就会进入到vul,此时写入 payload=b'a'*8+p64(rdi)+p64(pelf.got['puts'])+p64( pelf.plt['puts'])+p64(rdi)+p64(0x200)+p64 ...
kernel_pwn
内核内核的漏洞类型 init.sh中的一些命令cpio命令:用于备份Linux文件 # cpio - copy files to and from archivescpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [- ...