一步一步学pwn之栈溢出利用(2)

SSP(Stack Smashes Protect) leak

1.利用的是_stack_chk_fail中的fortify的报错泄露信息,在栈溢出的时候数组月结写入,导致Canary值被修改,在函数退出的时候检查canary,发现canary被修改,函数不能安全返回,call到stack_chk_fail打印argv[0]这个指针指向的字符串,默认是程序的名字。

2.如果我们把它覆盖为flag的地址时,它就会把flag给打印出来

3.注意不要用原来flag的地址覆盖,因为原来存储flag的地址会被overwrite,但是由于ELF的映射方式,此flag会被映射两次,另一个地方的flag的内容不会变,原因是stack_chk_fail会调用libc_message

4.主动触发栈保护,知道覆盖到argv[0]的值,实现任意内存读取。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容