cgpwn2(攻防世界新手pwn题)

改变system函数的参数

先运行,发现可以输入两次。再查看防御机制,开启了NX保护,即堆栈不可执行。
cgpwn2(攻防世界新手pwn题)_第1张图片
用ida查看主函数,发现只有一个hello()函数。查看其内容,直接找到运行时看到的"please tell me your name"。第一次输入规定了长度,第二次没有规定,存在漏洞:
在这里插入图片描述
找到一个后门函数pwn(),存在 call _system语句,但是这个函数的参数"echo hehehe"并没有用。所以需要将参数改为’\bin\sh’命令或’cat flag’命令。
cgpwn2(攻防世界新手pwn题)_第2张图片
构建payload。可以利用第一次写入,把需要用到的命令’cat flag’存储到name的位置,再在_system地址后面加上name的地址,作为_system函数的参数:
cgpwn2(攻防世界新手pwn题)_第3张图片
运行得到flag:
在这里插入图片描述

你可能感兴趣的:(cgpwn2(攻防世界新手pwn题))