ret2text

作者: KoooOooooK | 来源:发表于2019-10-28 16:59 被阅读0次

首先检查文件开了哪些保护

如图,可以看出文件开启了NX,即堆栈不可执行。
这样就不能把控制IP指向shellcode了。
检查文件信息

可以看出是32位的ELF可执行文件。
运行程序

可以看出程序流程是接受输入,然后输出文本。

将程序放入IDA分析。

可以看到此处有一个gets函数可以接受任意输入长度到栈上。

利用这一点可以覆盖返回地址

首先寻找覆盖多少位可以找到返回地址。
利用cyclic生成200个字符。

可以看出覆盖到112字节就是返回地址。

接着,咱们查看一下程序中的字符串信息。

找到了一个'/bin/sh'

然后,查看程序导出的函数。

main函数已经检查过了,只剩下secure函数了。将其反汇编出来。

看到程序调用了system('/bin/sh'),这意味着,只要将程序流控制到这个地方,就能获取shell。

所以将0x0804863A覆盖到返回地址。

编写payload。

from pwn import *

p = process('./ret2text')

p.sendline('a'*112 + p32(0x0804863A))

p.interactive()

可以看到获得了shell。

相关文章

  • ret2text writeup

    first checksec ret2text Stack: No canary found NX: ...

  • 总结

    栈溢出技巧 ROP 基本ROP ret2text ret2shellcode ret2syscall 32位 调用...

  • ret2text

    首先检查文件开了哪些保护 如图,可以看出文件开启了NX,即堆栈不可执行。这样就不能把控制IP指向shellcode...

  • ret2text ROP绕过策略

    下载链接:https://github.com/ctf-wiki/ctf-challenges/raw/maste...

  • 栈溢出基本ROP ret2text

    随着 NX 保护的开启,以往直接向栈或者堆上直接注入代码的方式难以继续发挥效果。攻击者们也提出来相应的方法来绕过保...

  • 基本ROP ret2text(CTF Wiki)

    一入pwn门深似海,从此web是路人。 在ctf wiki上学习时看到一道pwn题,链接在这儿:ret2t...

网友评论

    本文标题:ret2text

    本文链接:https://www.haomeiwen.com/subject/uhbbvctx.html