CodeGate 2014 angry_doraemon writeup

크리에이티브 커먼즈 라이선스
Creative Commons License



많은 팀들이 푼 문제입니다

문제가 전체적으로 코게주니어 nuclear문제랑 비슷했습니다 ( http://cd80.tistory.com/37 )


angry_doraemon_c927b1681064f78612ce78f6b93c14d9




문제가 올라온직후엔 바이너리 링크가 없어서 메모리 릭 위주로 찾았었는데

조금있다가 링크가 걸려서 다운받아 분석해 풀었습니다



공격대상 함수다

write(fd, "Are you sure? (y/n) ", 0x14u);

이후에 있는 read함수에서 오버플로우가 발생하고

첫바이트가 'y'일 경우 You chooose '%s'!\ 가 출력된다

굳이 y를 골랐다는걸 다시 보여줄 필요가 없는부분에서 출력한다는점에서 의심스러운 부분이다


함수에 SSP가 걸려있지만 소켓프로그램이기때문에 항상 fork로 실행해서 항상 같은 카나리를 갖는다



드래그한부분이 canary의 세바이트다

그런데 y를 10개넣었을땐 카나리가 출력되지 않으니

카나리의 첫바이트가 00인걸 알 수 있다

즉 카나리는 0x84c38b00이다

카나리값을 알았으니 카나리 위치에 그대로 넣어주고 ROP로 풀면된다

신고

'해킹공부 > 캡쳐더플래그' 카테고리의 다른 글

pCTF 2014 mtpox writeup  (2) 2014.04.13
Volga CTF 2014 Exploit 100  (0) 2014.03.29
CodeGate 2014 angry_doraemon writeup  (16) 2014.02.24
CodeGate 2014 4stone writeup  (3) 2014.02.23
CodeGate Junior 2014 nuclear 문제  (0) 2014.02.14
Codegate 2013 vuln 200  (5) 2013.11.28

설정

트랙백

댓글


티스토리 툴바