入门到放弃系列 ret2text

ret2text

这道题目是一道入门级别的题目,主要还是熟悉堆栈原理和工具的使用,那么话不多说,开始看题。

做题的第一步,先看看这道题的基本逻辑,那把程序试运行一遍发现是简单的输入输出和很常规的嘲讽战术。既然有输入输出又是pwn题应该也是肯定有溢出漏洞的(强行推断)。
入门到放弃系列 ret2text_第1张图片
做题第二步,那再看看这个程序有没有什么保护措施,发现只开了一个堆栈不可执行的保护,总之就是这个程序相当不安全。同时还发现这个程序是32位的,那我们顺势把它拖进ida32里面(其实只要32位和64位都试一试就知道了)。
入门到放弃系列 ret2text_第2张图片
打开ida点进main函数在按下F5查看这个程序的伪C代码发现逻辑基本没问题。然后观察到有一个gets(&s)函数,妥妥的栈溢出了。
入门到放弃系列 ret2text_第3张图片
这个时候可以看到前面s申请的空间有0x64,那么在加上ebp的4个字节就是0x68,一般来说这就是变量到ret的偏移量,但是也不排除题目坑人的可能

你可能感兴趣的:(刷题笔记)