Giant
-
Level15 (giant -> assassin)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:38
이번에는 no stack, no RTL 이라고 되어 있습니다. 스택과 RTL 기법에 이용되는 libc를 사용할 수 없고, buffer+sfp hunter로 44까지 0으로 초기화 됩니다. stack과 libc 가 안된다면 함수 내부의 명령어 주소를 RET에 넣어서 문제 풀이를 하면 될 것 같습니다. RET에 다시 RET를 넣게 되면 system 주소를 이어서 넣을 수 있기 때문에 가능할 것 같습니다. 사용하게될 exploit 페이로드는 아래와 같습니다. [Dummy 44 byte] + [ret (실행파일 RET 위치)] + [system (추가한 RET의 RET위치)] + [Dummy 4 byte] + [/bin/sh] 똑같은 libc를 사용하고 있기 때문에 system 주소와 /bin/sh 주소가 매번..
-
Level14 (bugbear -> giant)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:37
소스코드를 확인해 보면 좀 길어졌습니다. RTL2로 RTL을 이용하는 2번째 문제인것 같습니다. 주석을 위아래로 싸고 있는 코드를 살펴 보면 execve의 주소를 가져오는 기능을하는 코드라는 것을 확인 할 수 있습니다. 또한 RET에 execve의 주소를 넣지 않으면 안된다는 것을 알 수 있습니다. 하지만 문제가 되는 부분이 있습니다. 아래의 코드는 /home/giant/assassin에 접근을 하는 코드인데 기존에 tmp에 실행파일을 복사 해서 문제를 해결 했었는데 권한을 가질 수 없습니다. 그렇기 때문에 실행파일을 복사해서 문제를 해결할 수 없습니다. 그렇기 때문에 소스코드를 복사해서 소스코드를 좀 수정해서 컴파일을 해야 할 것 같습니다. 아래의 경로부분을 수정해 주면 됩니다. gcc를 이용해서 컴파..