[入門] 堆疊上的小端序

100 分

Pwn簡單

題目描述

附件 lock.c 模擬一把有輸入長度漏洞的門鎖。結構裡有 8 bytes 的名字,後面緊接一個 32-bit 整數。程式把整個結構的長度當成輸入長度,讓後面的門鎖值也能被覆寫。

你的目標是在 little-endian(小端序) 環境下,組出剛好 12 bytes 的輸入:前 8 bytes 全是 ASCII 的 A,後 4 bytes 將門鎖值改成程式中的 UNLOCK。

作答方式

將這 12 bytes 依實際輸入順序轉成 24 個小寫十六進位字元,包在 flag{...} 裡提交。不要把十六進位字元本身當成程式的二進位輸入。

可以閱讀原始碼手算;也可以在自己的 Linux 小端序環境編譯,將二進位輸入送進程式驗證:

gcc -std=c11 -O0 -o lock lock.c

練習重點: 緩衝區覆寫、結構排列與整數端序。

顯示提示

ASCII A 是 0x41。小端序會把整數的最低位元組放在最低位址。

lock.c0.9 KiB
登入後提交

更多