워게임/Root Me

[Root Me] Local File Inclusion - 웹해킹 / LFI

SecurityMan 2022. 8. 25. 11:00

 

30점짜리 웹해킹 문제

 

문제 제목에서 알 수 있는것처럼

 

LFI (Local File Inclusion) 과 관련된 문제이다.

 

반응형

 

문제의 목표는 admin section 에 접속하는 것이다.

 

 

문제 페이지에 접속했을 때 화면이다

 

File viewer 라는 제목의 웹페이지로

 

이름 그대로 서버 내에 있는 파일을 보여주는 기능이 있다.

 

 

각각의 메뉴를 눌러보면 중요한 특징이 하나 보이는데

 

sysadm 메뉴를 클릭할 경우 URL 이 ?files=sysadm 으로 바뀌고,

 

reseau 메뉴를 클릭할 경우 URL 이 ?files=reseau 로 바뀐다는 것이다.

 

나머지 메뉴들도 모두 똑같이 동작한다.

 

 

여기서 파일 이름은 index.html 를 클릭하면

 

index.html 의 내용을 볼 수 있다.

 

 

웹페이지의 오른쪽 끝에 보면 guest / admin 버튼이 있다.

 

지금은 guest 로 접속한 상태이다.

 

 

admin 을 누르면 이렇게 로그인 창이 나온다.

 

여기가 문제에서 접속을 요구하는 admin section 인 것 같다.

 

아까 메뉴를 선택하는 화면에서 

 

만약 URL에 ?files=<메뉴이름> 을 입력하는것이 아니라

 

서버에 있는 다른 파일이름을 입력한다면?

 

만약 적절하게 필터링이 되어있지 않을 경우 서버에 존재하는 아무 파일이나 가져와서 읽을 수 있게 된다.

 

이런 취약점을 LFI(Local File Inclusion) 이라고 한다.

 

 

URL에 ?files=sysadm/../../ 라고 입력해봤다.

 

여기서 ../ 는 상위 디렉토리로 이동하는것을 의미한다.

 

웹 서버 어딘가에 있을 sysadm 디렉토리에서 두 칸 상위 디렉토리로 이동한 것이다.

 

그럼 아까 index.html 만 보였던 것과 다르게

 

4개의 파일이 보이게 된다.

 

LFI 취약점으로 인해 상위 디렉토리의 파일들이 노출된 것이다.

 

여기서 admin 이라는 파일의 내용을 살펴본다.

 

 

admin을 클릭하면 아무것도 나오지 않는다.

 

이건 아마 admin 이 파일이 아니라 폴더라서 그런것일 것이다.

 

 

URL에 ?files=sysadm/../../admin 이라고 입력해준다.

 

sysadm 에서 두 칸 상위 디렉토리로 올라간 뒤,

 

다시 한칸 내려가서 admin 폴더로 들어간 것이다.

 

그러면 index.php 파일이 보이게 된다.

 

 

index.php 를 클릭해 내용을 보면

 

중간에 admin 의 비밀번호를 찾을 수 있다.

 

 

아까 로그인 창에서 admin / 찾은 비밀번호로 로그인하면

 

비밀번호가 플래그였음을 알려주는 문구가 출력된다.

반응형