보안/워게임

Format 4번

Seongjun_You 2021. 11. 25. 08:21

일단 printf 함수 에 buffer로 공격이 가능하고 바로 exit로 프로그램이 종료한다.

 

여기서 plt.got의 개념이 필요하다

printf함수나 exit 등을 쓰기 위해서는 헤더파일을 입력한다. 이러한 함수들은 plt라는 곳으로 이동해 기능들을 사용하기 위한 주소를 확인한 후 없으면 got를 통해 필요한 주소를 가져와서 다시 plt로 복귀해 주소를 기입한다.

1바이트 2바이트 1바이트 끊어서 값을 넣기로 했다.

이거 실행하면 payload텍스트 가 생성된다. 그걸로 프로그램 돌릴것이다.

계속 gdb 돌려가며 확인을 했다.

이 문제도 노가다로 풀었던 기억이 난다.

 

이런 식으로 한 바이트 씩 맞춰가며 확인을 했다.

 

텍스트 파일로 데이터 받을려면 이런 식으로 사용하면 된다.

또한 ./format4 < payload도 가능하다.

 

노가다였다.

이때는 원리도 모르고 풀었던것 같다.