2018 HCTF the_end
第一次学习,简单记录一下思路
程序流程
程序会让你先输入一个地址,在往这个地址里面输入值
看了wiki上面说,exit执行时,会遍历_IO_list_all,然后调用_IO_2_1_stdout_
下的vtable中_setbuf函数
所以我们可以hook _setbuf这个函数
不过在wiki看到了这个公式,这里的off_set_3其实意思是自己设置偏移,也就是要自己在libc里面找到一个地址
漏洞利用
- 首先找到_IO_FILE_plus,然后修改vtable这个指针,由于每次只能修改1个字节,所以要在周围找到fake_vtable
- 然后一个字节一个字节的修改到自己的fake_vtable,再将fake_vtable偏移0x58的位置设置为one_gadget值,接着在调用exit的时候就会调用one_gadget
最近几天准备忙完课设,来填坑,顺便把这个的调试在这几天调试一下