攻防世界 guess_num WriteUp

WriteUp

题目信息

来源:攻防世界
名称:guess_num
分类:Pwn
描述:菜鸡在玩一个猜数字的游戏,但他无论如何都银不了,你能帮助他么

题目链接: https://adworld.xctf.org.cn/challenges/list

解题思路

首先使用DIE对文件进行查壳,发现这是一个无壳的64位ELF文件。

于是直接使用64位IDA对文件进行反汇编,得到伪代码如下:

找到关键代码:

从代码来看,要连续猜中10次正确数字,才能得到flag。

其实观察name(原v7)地址可以发现,它可以覆盖seed种子(name长度为0x20)

所以我们可以先写个c文件,生成10个以srand(0)为基础的随机数。

代码如下:

生成结果如下:

['2','5','4','2','6','2','5','1','4','2']

然后我们可以通过栈溢出漏洞,修改seed的值为0。

最终payload如下:

结果如下:

使用工具

DIE
IDA
Kali
Pwntools(Python插件,请自行下载)

工具链接: https://pan.baidu.com/s/1dzK8gcFjYEvnj_aA0UjBeQ?pwd=ry2d 提取码: ry2d

Flag

cyberpeace{1d38448daa14eb4f23137fb1a07d9534}

总结

通过本次题目学习到:
栈溢出

posted @ 2025-03-18 21:26  Binary-0  阅读(159)  评论(0)    收藏  举报