stack smashing--canary报错利用
一般这种都是考察点比较狭窄,因为这个漏洞在libc2.23以上就被修复了,漏洞产生的原因是因为当覆盖掉canary的时候程序会报错,程序会执行 __stack_chk_fail 函
数来打印 __libc_argv[0] 指针所指向的字符串,如果把这个字符串覆盖成flag地址那么就可以得到flag
那么我们看一下保护,这种canary保护都是开启的
32位ida载入
一次read一次printf就是格式化字符串漏洞了,而且程序给了后门函数,那么我们可以修改_stack_chk_fail的got表或者修改
__do_global_dtors_aux_fini_array_entry地址为后门函数地址来读取flag
找一下偏移就可以开始写脚本了
exp
标签:__,--,smashing,canary,flag,报错,stack From: https://www.cnblogs.com/CH13hh/p/18130254