Skip to content

Pwn Lab 2:ROP / FSB

本节 Lab 由以下部分组成:

Note: 如果你最终没能获取到题目 flag,也请在报告中附上你的 exp 以及你所获取到的地址泄露等对漏洞利用有帮助的信息,评分时会酌情给分

Task 1 (20%)

题目名:[lab2]easyrop

提交的报告中至少需要包含以下内容:

  • canary, 程序基地址和 libc 基地址泄露的思路
  • 构造 rop 链的思路
  • 成功拿到 flag 的截图,以及在本次攻击中你所泄露出的内容
  • 完整的 exp 代码

Task 2 (30%)

题目名:[lab2]stackpivot

利用课上讲到的栈迁移技巧完成本题

提交的报告中至少需要包含以下内容:

  • 构造栈迁移的思路
  • 构造攻击 rop 链的思路
  • 成功拿到 flag 的截图
  • 完整的 exp 代码

Task 3 (20%)

如果要使用 ret2libc 的技巧来解决课上的 ret2plt 一题,应该怎么做?请给出你的思路

提交的报告中至少需要包含以下内容:

  • 完整的思路,包括泄露 libc 基地址,构造 rop 链,劫持控制流
  • 攻击可以只通过一次 rop 完成吗?如果不能,如何在只有一次溢出的情况下多次进行 rop

Task 4 (30%)

题目名:Format String Bug_easy

本题使用的是 32 位环境,32 位下函数参数全部通过栈传递,和课上讲到的略有不同。32 位下地址为 4 字节。

本题要求手动构造格式化字符串的 payload,如果使用 pwntools fmtstr_payload 函数只能得到 15

提交的报告中至少需要包含以下内容:

  • 完整的利用思路,包括如何构造格式化字符串,如何劫持控制流
  • 成功拿到 flag 的截图
  • 完整的 exp 代码

Bonus (+15%)

在以下两个任务中任选一个完成

  1. 对于格式化字符串不在栈上的情况,应该如何进行利用 ( 任意地址读写 ),请给出思路
  2. 完成校巴赛题 fsb_heap,给出思路,成功拿到 flag 的截图及 exp 代码