0x00 程序分析
1 | Canary : Yes |
根据题目逻辑,通过格式化字符串将3个地址覆盖成相应内容后,就可以进入一个叫final的函数,其中存在栈溢出,将final函数的返回地址覆盖成一个叫flag的函数,就可以获得flag了。在覆盖返回地址时,需要通过栈溢出获得Canary的值,再把值写入rbp下面(Canary比rbp地址低)
0x01 EXP
1 | #/usr/bin/env python |
1 | Canary : Yes |
根据题目逻辑,通过格式化字符串将3个地址覆盖成相应内容后,就可以进入一个叫final的函数,其中存在栈溢出,将final函数的返回地址覆盖成一个叫flag的函数,就可以获得flag了。在覆盖返回地址时,需要通过栈溢出获得Canary的值,再把值写入rbp下面(Canary比rbp地址低)
1 | #/usr/bin/env python |
原文作者:Po1lux
原文链接:http://yoursite.com/2019/04/04/2018-SUCTF-lock2-fmt-栈溢出-Canary/
发表日期:April 4th 2019, 10:13:08 pm
更新日期:April 5th 2019, 11:35:17 am
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可