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 / 찾은 비밀번호로 로그인하면
비밀번호가 플래그였음을 알려주는 문구가 출력된다.
'워게임 > Root Me' 카테고리의 다른 글
[Root Me] ELF x86 - Stack buffer overflow basic 1 - 포너블 / 버퍼오버플로우 (36) | 2022.09.03 |
---|---|
[Root Me] Local File Inclusion - Double encoding - 웹해킹 / LFI / PHP wrapper (57) | 2022.08.29 |
[Root Me] DNS - zone transfert - 네트워크 / dig (68) | 2022.08.22 |
[Root Me] Java - Server-side Template Injection - 웹해킹 / SSTI (46) | 2022.08.18 |
[Root Me] CISCO - password - 포렌식 / John the Ripper (49) | 2022.08.15 |