newstar2023 week4 - message board
文件分析
下载pwn
, NX on, PIE off, Canary off, RELRO partial
ghidra分析为64位程序
解题思路
一开始就要拿到puts的地址?how to?
scanf也只能修改任意地址一次,又要怎么做?
分别利用栈初始化和one_gadget即可
tips
- libcBase并不是无中生有,而是在栈上存在未初始化的
_IO_2_1_stderr_
- 数字会覆盖到栈上;垃圾字符会导致scanf一直输入不了;而'+'能使scanf跳过输入, 不覆盖栈内容
- ELF里的symbols不止可以找函数,找stderr这样的标签都是可以的
- got可写,那么可以利用one_gadget来使一个函数直接运行打开shell(但是要注意限制条件)
- 注意got里的函数是不可写的,只有.got.plt里的函数可写
- one_gadget在本地不一定是可用的,在我的电脑上就没开起来(但是验证了可行性)
EXPLOIT
1 | from pwn import * |
Done.
- 标题: newstar2023 week4 - message board
- 作者: RocketDev
- 创建于 : 2023-10-20 12:00:00
- 更新于 : 2024-07-30 10:28:00
- 链接: https://rocketmadev.github.io/2023/10/20/W4_message_board/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论