튜기's bloggggg(st1tch)



후기

4월 12일에 DDP에서 코드게이트 해킹방어대회 본선이 있었다.

한명은 리버싱, 내가 시스템, 나머지 두명은 웹 + a 이렇게 역할을 나눠서 준비를 했다. 

결과적으로 우리팀은 GoEnc, EasyCrackReturns, AEG 이렇게 3문제를 풀어서 2등을 했다.

EasyCrackReturns는 300개 바이너리를 손수 코드패치 할 수는 없어서, 오프셋을 정확히 찾아서 검증하는 함수의 첫번째 인자값으로 argv[1]값을 주고, 나머지는 nop으로 채우는 어셈블리어를 작성해서 자동으로 코드패치를 하고 난 뒤, angr을 이용해서 풀었다. 아마 더 빠른 방법이 있을거 같다.

AEG문제는 z3의 BitVec을 이용하면 값을 찾을 수 있었고, 그 다음은 쉘코드앞에 무한루프를 넣어보고 무한루프가 걸리길래 실행하다보니 쉘이 따졌었나 그렇다.

GoEnc 문제같은 경우는 못봐서 잘 모르겠다. ㄷㄷ 

easycrack 문제에서 뻘짓한다고 시간을 많이 날려서, 시스템문제를 많이 못풀어서 좀 아쉬웠다.
ransomware문제는 블라인드 sql인젝션으로 db에서 대회시작 이전에 만들어진 개인키를 3개 찾아와서 복호화를 했는데 안됬었다.
혹시나 해서 주최측에 물어봤는데 정상이라고 말하셨다. 

대회 끝나고 얘기하다가 바이너리가 윈도우 실행파일이였고, python으로 open함수 인자로 'w'를 쓴 게 맘에걸려서,
팀원이 시상식 전에 노트북 꺼내서 enc파일을 보니 0d0a가 있었고, 0d를 없애고 복호화를 해보니 플래그가 출력됬다.
차라리 윈도우에서 'r'로 읽어서 복호화 했으면 한문제 더 풀수 있었을 텐데 좀 아쉬웠다. 

무튼 대회때는 생각을 못했기 때문에 만족하고, 간만에 서울도 왔고, 크리스마스ctf 상금도 있어서 놀고먹었다. ㄷㄷ

시험 끝나고 시스템문제들이랑 리버싱문제들은 다시 풀어 봐야겠다.





저작자 표시 비영리 변경 금지
신고

Comment +2