지난 10월 CSAW CTF 2012 가 개최되었다.
문제들이 쉬워서 나름 재밌고 신선했다고들 한다.
나는 그때 상황이 여의치 않았기에 참여는 못하였지만 후에 하나하나 차근 풀어나가보았다.
의외로 문제들이 쉬워서..
참여자들을 X를 먹이는 문제들이 아니였나 싶었다.
문제는
Forensic200 - 1
Forensic200 - 2
Forensic500 < 이문제는 CSAW CTF 2012 이 개최되고 몇시간후에 문제가 추가되었다.
이 스크린샷은 CSAW CTF 2012 가 개최되고 바로 나온 문제들을 찍은 스크린샷이다.
-출처-
BJA Security Team
1) Forensic200 첫번째
version1.png 하나 주어진다.
해석해보면 이것들중 하나는 다른것들과 다르다(?)
라고 볼수있는데. Hex Workshop 이나 hexedit 으로 열어본다면 수많은 tEXtcomment.key(...) 라는 문자열들이 많이 보여질것이다.
png check 문제인것 같아서 pngcheck 로 체크해보았다.
root@walker:~/forensic1# pngcheck -7 version.png | grep key
hexedit 에서 보앗던 key{....} 들이 엄청나게 나온다.
정말 많다.... 설마 이 걸 전부 대입해보고 정답을 찾으란 소린 아니겠지. 라고 생각하며 무서웠다..
나는 다시한번 pngmeta 라는 프로그램으로 txt. 파일로 저장해서 경과를 보았다.
root@walker:~/forensic1# pngmeta version1.png > version1.txt
root@walker:~/forensic1# cat version1.txt
젠장 이놈도 이렇게 많이나온다 .. 아 .....
결과값이 나온후
wordcount 를 살펴 보았다
root@walker:~/forensic1# wc version1.txt
500 1502 14733 version1.txt
오브젝트 파일이나, 실행 파일에서 문자열을 찾기위해 "key" 를 grep 하고 strings 명령어를 사용하였다.
root@walker:~/forensic1# strings version1.png | grep "key" > version1strings.txt
root@walker:~/forensic1# wc version1strings.txt
500 1001 10490 version1strings.txt 를 확인할수있다.
여기서 알수있는것은
pngmeta 로 version1.txt 와 version1strings.txt 와 두개를 열어 어떤점이 다른것인지를 알수있다는점이다.
바로 이부분
root@walker:~/forensic1# vi version1strings.txt
열어보면 401번째 줄에 다른 "key" 와는 달리
401 key{takeuchi gregory}&YA1 으로 되어있다.
pngmeta로 확인을해보면 오류없이 Forensic200 첫번째문제 "key" 값 get!
root@walker:~/forensic1# pngmeta version1.png | grep "takeuchi gregory"
Success!!!
key = takeuchi gregory
만약 "key" 가 다를시엔 밑에 와 같이 뜬다.
commnet : key{lorien maureen}
2) Forensic200 두번째
첫번째와 같이 그림파일 하나 주어진다.
version2.png
이번엔 바로 pngmeta을 해보았다.
root@walker:~/forensic2# pngmeta version2.png
pngmeta : PNG metadata for version2.png :
comment : key{johnie tigger}
음 뭐지 이번엔 바로 뜬다.
혹시나 몰라서 정답확인 했더니
정답이다 -_-;;;;;
정말 황당하다.....
key = johnie tigger
3) forensic500
500점 문제치곤 정말 쉬웠다. 약간 어렵게 생각하면 정말 헤맬문제였는데.
간단했다.
core 라는 파일을 하나 준다.
파일을 txt로 확인하기 위해 Strings 명령어를 사용하였다.
root@walker:~/forensic500# strings core > core.txt
root@walker:~/forensic500# cat core.txt
한번 읽어보니 쭈욱내리다가 key 가 아닌 k3y{...} 이 나왔다.
혹시 몰라 정답확인을 해보았더니 세상에 이게 정답이다. -_-;
아무리 생각해도 제대로 물먹일려고 답을 가까운곳에다가 넣은것같다.
어렵게 생각하면 정말 해맸을것이다;;;
key = this_should_be_pretty_hard_unless_you_use_grep
csaw.zip