CTF | wargame

sCTF16 - Vertinet (png픽셀 추출 & 연산, 소켓연결)

nopdata 2016. 4. 14. 09:45

 


문제는 problem1.2016q1.sctf.io:50000에 연결을 하여 문제를 푸는 것이다.

이 문제는 앞서 나왔던 verticode를 풀어야만이 풀 수 있는 문제이다.


 


웹으로 연결을 하였을 경우의 화면이다. 앞서 나왔던 verticode와 같은 그림파일 하나가 주어지고 INCORRECT라는 문구가 나온다.

문제를 풀기 위해서는 웹브라우저로 들어가서는 안되고 소켓으로 연결을 해야 된다.

소켓으로 연결을 하면 먼저 그림파일을 주고 그에 해당하는 응답을 다시 보내면 답이 온다.

그림에 해당하는 문자열이 맞을 경우 다음 그림파일을 주는데 200개의 그림을 전송하고 그에 응답이 맞으면 답이 온다.

 


문제를 풀기 위해 작성한 소스

기존 verticode에서 사용한 rgb,zo테이블과 decode함수는 동일하다.

단,. 소켓으로 연결하고 그 응답에 대하여 이미지를 추출, decode함수를 통해 답을얻어 재전송하는 과정을 거칠 뿐이다.

일부러 exception을 발생시켜 중단점을 잡는다.

sock는 소켓 객체, logs는 서버에서 전송한 html, results는 png파일의 바이너리값이다.


 


그림에 대하여 보낸 메시지들을 보여주고 마지막에 list index out of range 메시지가 뜬다. split을 할 떄 생긴 except이다.

그 이후 logs, 서버에서 전송한 html의 마지막을 확인하면 답을 얻을 수 있다.


sctf{y0ub34tth3v3rt1c0d3}

'CTF | wargame' 카테고리의 다른 글

XCZ.kr / Prob8 (기타, 이미지검색)  (0) 2016.07.22
Wechall / Englightment  (0) 2016.04.28
sCTF16 - Verticode (png픽셀 추출 & 연산)  (0) 2016.04.14
sCTF16 - rev1 (리버싱, elf64)  (0) 2016.04.14
sCTF16 - Banana Boy (파일카빙)  (0) 2016.04.14