GuestBooK--pwn
本文最后更新于 2024年10月23日 晚上
GuestBooK–pwn
先利用read与puts,填充掉canary的最后一位,把canary打印出来,用这种不一样的字符方便接收和检验
1
payload = b"A"*(0x20-0x8-1)+b"B"+b'C'

然后需要利用strcpy输入两次,第一次把最后一位不对的canary以及后门函数地址输入进去,第二次把canary最后一位改为‘00’
当时没做出来,忘记了这种基础的泄露canary的方式了
》我真该死《有一些要注意的地方:
- 填充不一样的字母来方便接收的停顿
- strcpy遇到00会截断,所以不能有00,第一次注意注入的时候不要被截断掉
- 第二次利用strcpy会在最后加\x00的特性,来恢复canary的正确值
- 第二次不是在栈顶输入的,要加0x20
- 循环中的这个输入没有限制长度(当时做的时候
脑抽没想到)
exp:
1 | |
GuestBooK--pwn
https://xyyr-c.github.io/2024/10/23/GuestBooK--pwn/