티스토리 뷰

포너블/포너블 공부

레이스 컨디션 해킹

삼전동해커 2018. 6. 27. 21:25

레이스 컨디션(Race Condition) 기법 

프로그램이 임시파일을 만들 때 이미 같은 이름의 파일이 있으면 존재하는 임시파일을 지운 후 
임시파일을 만들도록 프로그램을 만들었다. 그러나 파일을 검사하고 삭제하고 
다시 임시파일을 만드는 과정에서도 간격이 존재한다. 

프로그램을 실행하는 과정이다.
1. 프로그램 실행 
2. 같은 이름의 파일 존재하는지 확인 
3. 있으면 삭제, 없으면 건너뜀 
4. 임시파일 생성 

3번과 4번 사이의 간격에서 심볼릭링크 파일을 만든다. 
딱 시간에 잡는 것은 불가능하므로 
root 권한의 setuid가 걸린 프로그램을 여러 번 반복 실행하도록 하는 프로그램과 
심볼릭링크를 여러 번 하는 프로그램 두 개를 만든다. 
이 두 프로그램을 동시에 실행하면 실행되는 시간의 차이가 있으므로  
3번과 4번 사이의 심볼릭링크를 거는 시간이 있을 것이다. 
이렇데 두 프로그램은 경쟁 상태에 놓이므로 Race Condition이라고 한다. 
경쟁의 결과로 심볼릭링크를 생성하여 root의 권한으로 특정 파일에 수정을 해 해킹을 할 수 있다. 

조건 
1.root 권한의 setuid가 걸려 있을 것 
2. 프로그램 실행 도중 어떤 파일을 생성할 것 
3. 생성되는 파일의 이름과 위치를 알고 있을 것 
4. 파일이 생성되는 디렉토리에 쓰기 권한을 가지고 있을 것



'포너블 > 포너블 공부' 카테고리의 다른 글

PLT(Procedure Linkage Table),GOT(Global Offset Table)  (0) 2020.09.15
execve() 함수  (0) 2020.09.08
Return To Libc 기법  (0) 2018.07.31
심볼릭 링크 해킹  (0) 2018.06.27
스택(달고나 정리편)-1  (0) 2018.06.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함