<문제 유형>
blackcon@bk:~/def/code$nc catwestern_631d7907670909fc4df2defc13f2057c.quals.shallweplayaga.me 9999
****Initial Register State****
rax=0x408ac14d14c91041
rbx=0x92b94f86512d81f7
rcx=0x27e130edb33ed938
rdx=0x4908d46be209ea22
rsi=0x46544d33f066a612
rdi=0x7917f07f5de389fd
r8=0x1be4f02013a8e1bd
r9=0xa30f7795d3397ee3
r10=0x2bce7d9563e73db2
r11=0x75aabcc891d0be75
r12=0x65f56eb6f0aea8a0
r13=0xfb79336eaae8f23a
r14=0xfe3972f02bb89884
r15=0x43aa67d92fe69f90
****Send Solution In The Same Format****
About to send 62 bytes:
L��I��H��M�I��0�PqI���I��H�� L��
****Improperly formatted solution
****Improperly formatted solution
->64bit 레지스터를 제공
->쓰레기값처럼 보이지만 64bit Opcode를 제공
<풀이 순서>
1. 레지스터값을 저장하는 asm.s를 생성( ex: mov rax, 0x12345678 ,,, )
-> 코드를 생성 후 nasm -f elf64 -o ./asm ./asm.s 로 컴파일
2. OPcode를 실행할 수 있는 바이너리 생성( gcc -o exec exec.c -z execstack )
3. 레지스터와 opcode를 파일로 저장 후 실행
4. 그 결과를 받아와서 서버로 전송.
[+] exec.c
[+] go.py
'Security > [게임] CTF 풀이' 카테고리의 다른 글
[exploit] 2016 SecconCTF - checker writeups (exploit only) (0) | 2016.12.11 |
---|---|
2015 HUST hacking festival (0) | 2015.06.01 |
[exploit] DEFCON CTF Qualifier 2015, babyecho Writeups (3) | 2015.05.18 |
[exploit] Plaid CTF 2015 EBP writeup (0) | 2015.04.24 |
[exploit] 홀리쉴드 2014 catlang writeups (2) | 2014.11.28 |