728x90
반응형
먼저 소스를 확인해보자!
인자는 2개를 넘을수 없고 argv[1]은 48자 또한 memset으로 초기화가 된다. 그럼 일단 생각을 해보면 기본적으로 파일이름 때문에 argv[0]은 먹고 간다. 그러므로 생각을 해야하는데;;;
파일이름을 심볼릭링크를 이용해서 쉘코드를 등록 하면 어떨까? 저자는 48바이트를 쉘코드를 사용하였다. 이유는 \x2f 즉 / 가있으면 심볼릭 링크를 만들수 없기 때문이다.
이렇게 심볼릭 링크를 걸고 난후 gdb 를 이용해 들어가서
공격을 하고 주소값이 뒤덮인 것을 확인 해보고
주소값을 이용하여 공격을 한다. 물론 심볼릭 링크를 이용한다. 그렇게 되면 core파일이 만들어 지는데 이를 이용하여 진짜 주소값을 구해볼 껀데
core를 gdb 로 확인 하고 x/700s $esp를 하다보면 이렇게 공격자가 넣은 소스를 볼수 있다. 이를 기점으로 bffff92d에서 ./값 2를 빼면 2b가 된다. 이게 진짜 주소값이다. 이를 이용하여 payload를 만들어 공격하자
payload는 심볼링 링크 건 파일명 + 다시 파이썬 버퍼(40+더미값(4)+주소값이다.
이렇게 쉘을 딸수 있게 된다.
728x90
반응형
'Wargame > CTF(Capture The Flag)' 카테고리의 다른 글
CodeGate 2013 f300 (0) | 2016.09.23 |
---|---|
LOB troll -> vampire (0) | 2015.10.15 |
pwnable.kr shellshock (0) | 2015.10.11 |
LOB orge (0) | 2015.09.15 |
LOB darklf (0) | 2015.09.15 |
댓글0