해킹/Nebula
[Exploit Exercises] Nebula level10 : 레이스 컨디션 (race condition)
rls1004
2016. 7. 4. 10:52
심심해서 시작한 Exploit Exercises!
Nebula level10
About
access() 시스템 콜의 요구사항을 만족하면 바이너리를 업로드해주는, setuid가 설정된 /home/flag10/flag10 바이너리가 있다.
Source code
Solve
access() 시스템 콜로 파일에 대한 권한을 검사한다.
하지만 파일을 여는 것은 그 이후에 이루어진다. (54줄)
레이스 컨디션을 이용하여 access() 시스템 콜 호출 후 파일을 바꿔치기한다.
* 레이스 컨디션 (race condition)
한정된 자원을 이용하려는 여러 프로세스가 서로 경쟁을 벌이는 상황을 말한다.
여러개의 프로세스가 동시에 실행된다면, 결과 값이 달라질 수 있다.