攻防世界 hello_pwn WriteUp
WriteUp
题目信息
来源:攻防世界
名称:hello_pwn
分类:Pwn
描述:pwn!,segment fault!菜鸡陷入了深思
解题思路
首先使用DIE对文件进行查壳,发现这是一个无壳的64位ELF文件,所以使用64位IDA对该文件进行反汇编。

接着进入其中的main函数,得到如下伪代码(为方便阅读代码,已修改部分变量名):

仔细分析代码可以发现,

在bss段中,ans的地址在in[4](0为初始下标)的位置,而上文伪代码中有read函数,从而修改in的内容。
再查看sub_400686函数,发现其中有输出flag文件的指令,显然这就是我们在远程靶机得到flag的方式。

于是,我们考虑payload时,先填充四个任意字符,然后再加上“1853186401”。
靶机地址如下:

最终payload如下:

结果如下:

使用工具
DIE
IDA
Kali
Pwntools(Python插件,请自行下载)
工具链接: https://pan.baidu.com/s/1dzK8gcFjYEvnj_aA0UjBeQ?pwd=ry2d 提取码: ry2d
Flag
cyberpeace{cfd94892d06b6086feaf167f703acf0c}
总结
通过本次题目学习到:
Payload编写
修改内存地址的值

浙公网安备 33010602011771号