I just found a way to kill ROP. I think. Maybe?
Analysis
문제에서 자체적으로 system()
의 주소를 제공해 주고 [1], v1
에 gets()
로 입력을 받아 stack buffer overflow가 발생한다 [2].
Exploitation
system()
의 주소를 이용하여 pop rdi; ret
가젯과 "/bin/sh"
의 주소도 계산할 수 있다. Canary가 없기 때문에 그대로 ROP로 system("/bin/sh")
를 호출하면 shell을 획득할 수 있다.
728x90