System Hacking

[Root-me]ELF x86 - Stack buffer overflow basic 1

BIGFROG 2019. 7. 3. 18:08

putty로 접속, 소스코드를 친절하게 문제에 알려줬다.

 

제목부터가 스택 오버플로우니까, buf에서 입력받아서 쌓이는 순간부터 int check까지의 거리를 계산하면 쉽게 풀릴 듯.

 

일단 어떤 파일이 있는지부터 확인한다. .passwd라는 파일이 수상함.

 

당연히 조회 안된다.

 

gdb로 bp걸고 디버깅해보자..

 

check를 발견함

대충 A 20개 정도 줬다.

check가 바로 보이고 거리는 A 40개면 정확하다.

 

fgets로 받을때 버퍼 크기보다 큰 값을 인자로 줬기 때문에 스택 오버플로우가 일어나게 된다.

 

성공

첫 번째 페이로드의 문제점은, 배쉬쉘이 열리자마자 닫힌다는 것이다.

그래서 권한 상승된 쉘을 붙잡아 줄 필요가 있는데,

cat 명령어를 이용해서 해결했다.

 

이를 이용해 두 번째 페이로드를 작성,

상승된 권한으로 .passwd 파일을 볼 수 있었다.