Diary

[CTF 후기] Hackappatoi CTF 2022

wyv3rn 2022. 12. 12. 13:24
728x90
반응형

토~일 2일간 진행된 CTF 였는데, 사실상 하루정도 밖에 참여하지 못했다.

살짝 beginner friendly 하긴 했지만 pwnable 문제는 전반적으로 구성이나 난이도 설정이 잘 되어있었던 것 같다.

다만 misc 문제 수가 너무 많지 않았나 싶기도...


토요일 약속이 생겨 새벽에 일찍 일어나 쉬운 문제 2개를 슥삭 했고,

외출 후 다시 돌아와보니 또 다른 문제 2개를 팀원분께서 푸셨기에 다음 문제로 넘어갔는데,

beerop이라는 문제가 죽어도 방법이 안보였다 ㅠㅠ

힌트도 줬는데 로되리안 걸리고...

나중에는 언인텐 풀이도 나와서 version2가 추가로 문제로 나왔다 ㄷㄷㄷ

결국 지쳐서 포기하고 다른 문제를 풀어 총 3개 클리어.

beerop은 인텐 풀이를 보니 대략 sigreturn 문제였고, 

아직도 제대로 이해되지 않아 다시 풀어볼 예정이다.

 

한개 문제를 몇시간 동안 뚫어져라 보고 있었더니 그나마 배운 점은,예를 들어 어셈블러 코드가 아래와 같을 때

   0x0000000000001139 <+0>:     push   %rbp
   0x000000000000113a <+1>:     mov    %rsp,%rbp
   0x000000000000113d <+4>:     sub    $0x10,%rsp
   0x0000000000001141 <+8>:     movq   $0x64,-0x10(%rbp)

이를 그대로 보지 말라는 것이다.즉, 1 byte 씩 쪼개보면

gef➤  x/i 0x0000000000001139
   0x1139 <main>:       push   %rbp                                                                                 
gef➤  x/i 0x000000000000113a
   0x113a <main+1>:     mov    %rsp,%rbp                                                                            
gef➤  x/i 0x000000000000113b
   0x113b <main+2>:     mov    %esp,%ebp                                                                            
gef➤  x/i 0x000000000000113c
   0x113c <main+3>:     in     $0x48,%eax                                                                           
gef➤  x/i 0x000000000000113d
   0x113d <main+4>:     sub    $0x10,%rsp                                                                           
gef➤  x/i 0x000000000000113e
   0x113e <main+5>:     sub    $0x10,%esp                                                                           
gef➤  x/i 0x000000000000113f
   0x113f <main+6>:     in     (%dx),%al                                                                            
gef➤  x/i 0x0000000000001140
   0x1140 <main+7>:     adc    %cl,-0x39(%rax)                                                                      
gef➤  x/i 0x0000000000001141
   0x1141 <main+8>:     movq   $0x64,-0x10(%rbp)

더 많은 어셈블러 코드를 활용할 수 있다.

(물론 말도 안되는 부분도 있겠지만 말이다)

728x90
반응형