攻防世界pwn新手练习区-when_did_you_born


攻防世界pwn新手练习区-when_did_you_born

查看基本信息并运行文件

查看文件类型: file when_did_you_born
查看保护: checksec --file=when_did_you_born
运行文件:./when_did_you_born

该文件在我的电脑中的文件名为when_did_you_born
攻防世界pwn新手练习区-when_did_you_born

在IDA中分析

文件64位,将其拖入64位ida中。
攻防世界pwn新手练习区-when_did_you_born
Space切换视图
攻防世界pwn新手练习区-when_did_you_born
F5生成伪代码
攻防世界pwn新手练习区-when_did_you_born
攻防世界pwn新手练习区-when_did_you_born

分析:
攻防世界pwn新手练习区-when_did_you_born
所以 输入生日v5 时不能输入1926,我们需要通过 输入姓名v4 这一步骤来修改v5使之等于1926。

进入v4所在栈
攻防世界pwn新手练习区-when_did_you_bornv4向下填充,当填充长度达到0x20-0x18时开始填充v5,这时填入1926即可。
所以 payload = b’a’ * (0x20 – 0x18) + p64(1926)

exp

攻防世界pwn新手练习区-when_did_you_born
content=1 时打本地,如果出现 You Shall Have Flag. 则成功;修改为 content=0 ,输入正确的远程地址再运行即可得到flag。

该python文件在我的电脑中文件名为exp.py
终端输入python3 exp.py
下面图片是 content=1时运行截图
攻防世界pwn新手练习区-when_did_you_born