상세 컨텐츠

본문 제목

19. nightmare -> xavius

Pwnable Write-Up/02.hackerschool L.O.B

by RACC8N 2020. 3. 11. 20:06

본문

fgets함수를 이용해 stdin으로 입력받는다. stack과 libc는 사용할 수 없다.

 

stack을 아예 사용할 수 없기때문에 이전과 같은 방법으로 풀 수는 없을 것이다. 

 

여기서 입력을 갑자기 stdin으로 받는게 정답과 관련있을 것 같다.

 

stdin은 표준 입력 방식으로 입력받는동안 데이터를 저장할 버퍼가 존재한다.

 

이 버퍼를 이용하면 될 것 같다. 

 

fgets 함수의 인자로 0x8049a3c를 eax에 넣고 push 한다. 이 값을 확인해보자.

 

해당주소는 stdin@@GLIBC를 가리키고 있엇고, 0x401068c0을 타고 들어가면 stdin 구조체가 보인다.

그렇다고 한다. 그러면 한번 참고하여 진행해보자.

 

A를 입력한결과 말대로 0x40015000에 A가 들어간 것을 확인할 수있다. 이곳이 stdin의 임시 버퍼이다. 

 

이곳에 쉘코드를 저장한 후 ret주소를 쉘코드 시작 주소로 변조하면 될 것 같다. 

 

payload를 작성하여 실행해보자.

 

다음 단계로 넘어가보자.

'Pwnable Write-Up > 02.hackerschool L.O.B' 카테고리의 다른 글

00. LOB 문제  (0) 2020.05.03
20. xavius -> death_knight  (0) 2020.05.03
18. succubus -> nightmare  (0) 2020.03.11
17. zombie_assassin -> succubus  (0) 2020.03.11
16. assassin -> zombie_assassin  (0) 2020.03.11

관련글 더보기

댓글 영역