[CTF write up] Tet CTF 2023 - mailService : Logical bug & Mem corruption PWN
mailclient와 mailserver라는 바이너리가 있으며 서로 통신하며, 파일을 생성하고 읽는다. 가장 눈에 띄는 취약점은 다음과 같이 콘텐츠 사이즈를 int 형으로 검사한다는 것이다. 음수 값을 넣으면 2048이 넘는 사이즈 값을 입력할 수 있게 된다. 해당 사이즈 값 4자리는 파일내에 같이 저장되며, 메일을 읽을때 해당 사이즈 값을 바탕으로 파일에서 값을 읽는다. 다음은 파일을 읽는 부분이다. 파일에 저장된 4자리 사이즈 값을 읽고 그만큼 read / write를 한다. content_buffer는 2048 사이즈의 지역변수이기 때문에 위 취약점을 이용하여 사이즈 값을 음수로 넣으면 스택 오버플로우가 발생한다. 하지만 메모리 보호 기법이 전부 걸려있기 때문에 카나리 검증으로 익스플로잇을 할 수 ..
2023.01.03