pwnable.kr unlink1 pwnable.kr unlink [Toddler's Bottle]pwnable.kr unlink unlink 파일을 보면 nx가 걸려있는 것을 볼 수 있다. 아래는 unlink.c 코드의 일부이다. gets() 에서 overflow가 발생한다.또한 unlink() 함수를 보면 값에 검증을 수행하지 않는 것을 볼 수 있다. 실제로 gets()에서 "A"를 100개 입력해보았다. 그 결과, 아래와 같이 입력한 값이 그대로 들어간다.즉, 첫번째 malloc() 한 A의 size보다 많이 입력하면, B와 C를 덮을 수 있다. 여기서 처음 든 생각은 stack leak 값을 이용하여 ret를 shell()의 주소로 덮는 것이었으나,FD에 코드 영역의 주소를 넣으면 FD->bk=BK; 부분에서 코드 영역에 write를 해야 하므로 힘들 듯하다. .. 2019. 3. 12. 이전 1 다음