동일하게 시작

요구사항 : 레이스 컨디션 개념



그렇다면 먼저 저 /usr/bin/level5라는 프로그램을 실행시켜보고, /tmp/level5.tmp가 있는지 확인해본다.



없다고 뜬다. 여기서 예상되는 것은 level5라는 프로그램은 level5.tmp 파일을 쓰고 바로 삭제한다는 것을 알 수 있다.


여기서 생각해야하는 개념이 레이스 컨디션. 레이스 컨디션이란 쉽게 말하면 동일한 자원을 사용하기 위해 경쟁하는 상태를 말한다.


그러면 여기에 중간에 난입(?)이라고 해야할까. level5.tmp 파일을 중간에 복사 또는 링크 해오는 공격용 프로그램을 만들어야 한다.

또 추가적으로 이 공격용 프로그램을 사용하기 위해 프로그램 실행 시간이 굉장히 짧은 /usr/bin/level5프로그램을 반복실행시켜 주는 프로그램을 짜야한다.



이것은 우선 직접 짠 공격용 프로그램이다.

해석을 하면 100000번 반복문을 돌리는데 /tmp/level5.tmp파일을 링크하는 소프트링크 /tmp/la.txt를 생성한다.

(소프트링크에 관한 내용은 따로 구글링)


그리고 다음으로 반복적으로 실행시키는 프로그램을 짜보면



해석하면 100000번동안 /usr/bin/level5를 백그라운드에서 실행을 시키는 것이다.



이제 이 프로그램들을 동작시킬 텐데

먼저 반복실행시키는 프로그램을 동작시킨후 재빨리 공격용 프로그램을 작동시키면 된다.


level5 디렉토리에서 

./tmp/(반복프로그램) &

./tmp/(공격프로그램)

순으로 타이핑한다.


그리고 기다리자..



!!!!!


비밀번호가 나왔다!! Clear~!



'Pwnable > FTZ' 카테고리의 다른 글

FTZ Level7 풀이  (0) 2016.07.15
FTZ Level6 풀이  (0) 2016.07.15
FTZ Level4 풀이  (0) 2016.07.14
FTZ Level3 풀이  (0) 2016.07.14
FTZ Level2 풀이  (0) 2016.07.14

+ Recent posts