CS161 Project 1
Project1
Q0 Customizer
- 以customizer - customizer身份获取后续密码
- remus - ilearned
Q1 Remus
- 要求我们使用缓冲区溢出注入代码,由此读取访问受限的文件README
1 |
|
- 可以发现gets()没有对读取的输入作越界处理,因此含有缓冲区溢出的隐患
./debug-exploit
并在第五行处打断点
1 | (gdb) b 5 |
- 由此我们获得了我们想要的地址,rip与buf间相差了20个字节
1 | rip (0xbffffc7c) |
- 用如下脚本产生输出,先写20Byte的无用字节,到达地址rip(0xbffffc7c),我们覆写rip地址处的值为rip+4(0xbffffc80),使得函数返回地址被篡改为0xbffffc80,再在0xbffffc80处注入SHELLCODE
1 | #!/usr/bin/env python3 |
./exploit
后输入cat README
1 | Relay module [queued message: 2] |
Q2 Spica
CS161 Project 1