상세 컨텐츠

본문 제목

[Write-up] Level 14

Pwnable Write-Up/01.hackerschool F.T.Z

by RACC8N 2019. 12. 7. 20:58

본문

HINT : attackme의 소스코드

 

이제 앞으로 bof와 포맷 스트링 문제가 자주 나올 것 같다.

 

소스코드를 확인해보면 buf 크기는 20인데, fgets에서 45 만큼 buf에 쓰기 때문에 bof임을 알 수 있다.

 

fgets를 통해 check을 0xdeadbeef 값으로 덮어 쓴다면 아래 조건문으로 들어가 쉘을 딸 수 있을 것 이다.

 

우선 buf에서부터 check까지의 크기를 알아보자.

 

deadbeef와 비교하는 값의 위치는  ebp-16임을 알 수 있다.

 

gdb를 통해 ebp-16에 어떤 값이 들어있는지 확인해 보자.

 

0xbfffed68이 들어 있는것을 확인했다.

 

이제 fgets 함수 다음에 breakpoint를 걸어 buf부터 check까지의 크기를 구해보자.

0x41이 들어있는 buf부터 0xbffffed68이 들어있는 check 까지의 크기는 40바이트 이다.

 

그럼 이제 fgets을 통해 "A'*40과 0xdeadbeef를 넣어주면  check 값이 변조되어 분기문을 들어갈 것 이다.

 

쉘을 획득하여 level15의 password를 얻을 수 있었다.

 

이제 level15로 올라가 보자.

'Pwnable Write-Up > 01.hackerschool F.T.Z' 카테고리의 다른 글

[Write-up] Level 16  (0) 2019.12.07
[Write-up] Level 15  (0) 2019.12.07
[Write-up] Level 13  (0) 2019.12.07
[Write-up] Level 12  (0) 2019.12.07
[Write-up] Level 11  (0) 2019.12.06

관련글 더보기

댓글 영역