보안/워게임
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도 가능하다.
노가다였다.
이때는 원리도 모르고 풀었던것 같다.