题目是网鼎杯的,找不到原题
通过之前所说的触发canary错误而触发check_stack_fail打印出arg[0]中的地址,此时将地址赋值为read的got表,然后通过LibcSearcher找到libc,通过libc找到environ。
environ的地址=libc_base+environ的偏移
environ保存的是栈中的地址,通过environ保存地址和栈中数据的偏移即可以得到所有栈中的地址
要求:开启canary保护,存在栈溢出并且能够溢出致arg[0]
ps:这个漏洞只存在与libc2.3 libc2.3后check_stack_fail的参数直接去除了arg[0],所以也无法利用了