[ 화이트햇 콘테스트 ] left_right
game함수에서 취약점이 발생했다. 5번째 줄을 보면 v3이 함수 포인터로 선언이 된 것을 확인할 수 있다. v3을 초기화하지 않으니 만약 v3이 할당되는 메모리 영역에 특정 값이 있다면 해당 값이 call될 것이다. 이제 v3이 할당되는 공간에 특정 값을 넣을 수 있는 곳을 찾아야 한다. left_right 바이너리를 까보면 read_input함수가 여러 곳에서 사용되는데 첫번째로 호출되는 read_input함수에서 buf가 할당되는 주소를 gdb로 확인해보니 v3가 할당되는 공간보다 8바이트 낮은 위치에 할당됐다. 처음 read_input함수가 호출될 때 더미값 8개를 집어넣어주고 바이너리에 있는 wanna_flag함수의 주소를 넣어주면 game함수의 20번째 줄에서 wanna_flag 함수가 호출될..
2022.10.17