idea
看了一下逻辑发现只有 2 处的堆溢出,没有可以把堆 free 掉合并什么的功能,这就涉及到我的知识盲区了,谷歌堆溢出的利用方式,找到了 House Of Force 这个方法,那就来学习一下。
先看一下程序的保护,可以发现很喜人,nx rwx 都没开,如果有条件可以写 shellcode 到 bss 段之类的。
1 | ❯ checksec mailer |
先安利一下大蛇,不愧是 NSA 这种级别的逆向工具,在一些结构体上面反汇编出来的东西比 ida 好看很多,还有一些进制的转换和显示也很棒,目前就发现这么多,先上一张全景图。
Write_mail
dump
House Of Force
利用条件
1 | 1、能够以溢出等方式控制到 top chunk 的 size |
关于这个洞的原理这边已经写的很明白了,就不再赘述了。House Of Force
exploit
1 | 1、申请第一个堆的空间,在写入 title 时溢出 chunk0 的 size 并在 content 处写 shellcode |
逻辑很清楚的题目,本来使用 pwntools 自己生成的 shellcode 时不知道为啥老是出错,在 gdb 里面跟了一下发现在 printf 时确实 eip 跳向了堆上的 shellcode,说明我们计算的 malloc_size 是没有问题的。但是执行过程中直接崩了,换了一个 shellcode 后就能用了。
1 | from pwn import * |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment