# Glibc Heap Exploit 坐牢笔记 - 0x04
# UAF
# hitcontraining_uaf
uaf 直接秒了
1 | #patchelf --set-interpreter /home/akyuu/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ld-2.23.so --replace-needed libc.so.6 /home/akyuu/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/libc.so.6 pwn |
# Unsorted Bin Attack + Off By One
# hitcontraining_heapcreator
利用 Unsorted Bin 里面只有一个 chunk 的时候,这个 chunk 的 fd 和 bk 都是指向 main_arena 的固定偏移位置的 “特性”,可以泄露出 libc 基址,从而得到 one_gadget 的地址,也可以得到 system 函数的地址。
之后利用 Off_by_One 修改 free 的 chunk 的大小再 malloc 他,就可以得到覆盖在之后的 chunk 之上的大 chunk,因此修改这个 chunk 就相当于修改了他覆盖的 chunk,因此我们把保存存储内容的 chunk 的地址的 chunk 记录的地址改为 atoi () 的 got 表地址,修改这个 chunk 记录的地址就相当于修改 atoi () 的 got 表。(修改 hook 也是可以的,但是我懒得找偏移了。)
1 | #patchelf --set-interpreter /home/akyuu/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ld-2.23.so --replace-needed libc.so.6 /home/akyuu/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/libc.so.6 pwn |
# Fastbin Attack
# hitcontraining_magicheap
修改一个全局变量大于一个数值就行了。fastbin attack 修改 fd 就行了。
1 | #patchelf --set-interpreter /home/akyuu/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ld-2.23.so --replace-needed libc.so.6 /home/akyuu/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/libc.so.6 pwn |