SwampCTF 2018 return write-up

올 초에 열렸던 SwampCTF 2018의 return 문제 라이트업입니다. 바이너리를 바로 열면 main()함수에서 바로 doBattle() 함수를 실행한다. doBattle() 함수를 보면 buf에 50바이트를 입력는다. 하지만 buf는 ebp-38(0x26)바이트에 위치하므로 doBattle()함수의 리턴 어드레스를 덮을 수 있다. 그런데 9번째 줄을 보면 ret(리턴어드레스)가 locret_8048595보다 크면 안 된다. slayTheBeast()라는 함수가 있다. 이 함수는 flag.txt를 읽어준다. doBattle()함수에서 ret를 &slayTheBeast()로 덮으면 되는데, 이 함수의 주소가 locret_8048595보다 [Read More]