pwn1
(40 points, solved by 91)
Description: Download attachment. server at nc 35.231.63.121 1337
Attachment: 6a224b2717a860a887610eb8b0d16f9e.zip
objdumpコマンドで逆アセンブルします。
$ objdump -s -D -M intel pwn1.elf >aaa.txt
main関数を見てみると、入力した数値とget_number関数から取得した数値を比較して一致していればフラグを出力しているようです。
0000000000001195 <main>:1195: 55 push rbp1196: 48 89 e5 mov rbp,rsp1199: 48 83 ec 10 sub rsp,0x10119d: 48 8d 3d 64 0e 00 00 lea rdi,[rip+0xe64] # 2008 enter a number11a4: e8 97 fe ff ff call 1040 <puts@plt>11a9: 48 8d 45 fc lea rax,[rbp-0x4]11ad: 48 89 c6 mov rsi,rax11b0: 48 8d 3d 60 0e 00 00 lea rdi,[rip+0xe60] # 2017 %d11b7: b8 00 00 00 00 mov eax,0x011bc: e8 bf fe ff ff call 1080 <__isoc99_scanf@plt>11c1: b8 00 00 00 00 mov eax,0x011c6: e8 34 00 00 00 call 11ff <get_number>11cb: 89 c2 mov edx,eax11cd: 8b 45 fc mov eax,DWORD PTR [rbp-0x4]11d0: 39 c2 cmp edx,eax11d2: 75 18 jne 11ec <main+0x57>11d4: 48 8d 3d 45 0e 00 00 lea rdi,[rip+0xe45] # 2020 great number ,I like it..take your price11db: e8 60 fe ff ff call 1040 <puts@plt>11e0: b8 00 00 00 00 mov eax,0x011e5: e8 20 00 00 00 call 120a <get_flag>
get_number関数は次のようになっています。
00000000000011ff <get_number>:11ff: 55 push rbp1200: 48 89 e5 mov rbp,rsp1203: b8 71 7c ea 43 mov eax,0x43ea7c71 #11394407531208: 5d pop rbp1209: c3 ret
ncコマンドでサーバに接続します。
フラグは、$ nc 35.231.63.121 1337enter a number1139440753great number ,I like it.take your pricecbmctf{e@sy_r3v3rs3!!}
cbmctf{e@sy_r3v3rs3!!}です。