티스토리 뷰
심심해서 시작한 Exploit Exercises!
Nebula level10
About
access() 시스템 콜의 요구사항을 만족하면 바이너리를 업로드해주는, setuid가 설정된 /home/flag10/flag10 바이너리가 있다.
Source code
Solve
access() 시스템 콜로 파일에 대한 권한을 검사한다.
하지만 파일을 여는 것은 그 이후에 이루어진다. (54줄)
레이스 컨디션을 이용하여 access() 시스템 콜 호출 후 파일을 바꿔치기한다.
* 레이스 컨디션 (race condition)
한정된 자원을 이용하려는 여러 프로세스가 서로 경쟁을 벌이는 상황을 말한다.
여러개의 프로세스가 동시에 실행된다면, 결과 값이 달라질 수 있다.
'해킹 > Nebula' 카테고리의 다른 글
[Exploit Exercises] Nebula level11 : (1) | 2016.07.05 |
---|---|
[Exploit Exercises] Nebula level09 : PHP /e modifier 취약점 (0) | 2016.07.03 |
[Exploit Exercises] Nebula level08 : 와이어 샤크 (WireShark) (0) | 2016.07.03 |
[Exploit Exercises] Nebula level07 : 커맨드 인젝션 (0) | 2016.07.03 |
[Exploit Exercises] Nebula level06 : 존 더 리퍼 (John The Ripper) (0) | 2016.07.03 |
댓글