ipwn

[pwnable.kr] bof 본문

Write up/Pwnable.kr

[pwnable.kr] bof

ipwn 2017. 12. 31. 14:04



이번에는 nc서버 접속으로 푸는 문제이다.


코드를 보도록 하자.


간단한 Buffer Overflow로 해결할 수 있는 문제인 듯 하다.


대충 코드를 보면 key값이 0xcafebabe일 경우에 /bin/sh를 실행해준다.


gets함수에서 overflow를 일으켜서 key 값을 0xdeadbeef에서 0xcafebabe로 바꿔주면 되는 문제이다.


사실 이미 알고계신 분도 계시겠지만  "0xcafebabe를 정확한 key값의 위치에 넣어라"가 아니라서


어처피 key값은 메모리 어딘가에 존재할테니 그냥 0xcafebabe를 적당히 많이 때려박아도 풀리는 문제이다.


하지만 이번에는 정확한 key의 위치에 0xcafebabe값을 한 번 넣어보도록하자.


일단 맨 처음의 링크에서 binary 파일을 가져와보도록 하자.



디버깅을 해보면 살구색 밑줄 친 부분 즉 ebp+0x8은 key값인 걸 알 수 있다.


그리고 ebp-0x2c는 overflowme의 시작주소인 것을 알 수 있다.


그리고 gets 함수의 인자로 넘어간다는 걸 알 수 있는데, 이제 둘 사이의 거리를 구하면 exploit이 가능하다.


둘 사이의 거리가 52byte인 걸 알아냈다.


dummy값을 52byte 넣어주고 그 뒤에 0xcafebabe의 값을 넣어주면 될 것 같다.



성공적으로 flag를 읽어왔다.





'Write up > Pwnable.kr' 카테고리의 다른 글

[pwnable.kr] random  (0) 2018.01.01
[pwnable.kr] passcode  (0) 2018.01.01
[pwnable.kr] flag  (0) 2017.12.31
[pwnable.kr] collision  (0) 2017.12.28
[pwnable.kr] fd  (0) 2017.12.28
Comments