WriteUp
题目信息
来源:攻防世界
名称:hello_pwn
分类:Pwn
描述:pwn!,segment fault!菜鸡陷入了深思
题目链接: https://adworld.xctf.org.cn/challenges/list
解题思路
首先使用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编写
修改内存地址的值