HackTheBox-Challenges Entity Writeup
Exploitation
這題要考的是 Union 的類型混淆,DataStore 的宣告如下:
1 | static union { |
所以 integer 跟 string[8] 是存在同一個地方的,又程式的目標如下:
1 | void get_flag() { |
DataStore.integer 要是 13371337,但是設定的時候如果我們設定 13371337 他會因為下面的限制被結束掉:
1 | void set_field(field_t f) { |
看到這裡我們先了解一件事情,如果我們希望 integer 被解釋成 13371337 那他實際存在記憶體的會是 0x0000000000CC7ACD,所以我們可以透過 p64(13371337) 把 byte 直接寫進去。
你們可能會搞混為什麼不是送 ‘13371337’ 進去,因為他會以 ascii 存在記憶體中,所以的差異在這。
Exploit
1 | import warnings |
Pwned !!!
- Title: HackTheBox-Challenges Entity Writeup
- Author: kazma
- Created at : 2024-11-08 01:25:58
- Updated at : 2024-11-08 01:43:31
- Link: https://kazma.tw/2024/11/08/HackTheBox-Challenges-Entity-Writeup/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments