CTF/웹해킹

[2021CCE] basic web - 웹해킹 / LFI

SecurityMan 2023. 8. 11. 11:00

 

2021년 사이버공격방어대회(CCE)에 출제되었던

 

웹해킹 문제

 

생각보다 간단한 문제들이 많이 나왔었다.

 

반응형

 

이번 문제 역시도

 

문제 설명에 나와있는것 처럼

 

웹 사이트에서 자주 발생하는 기본적인 취약점을 다루고 있다.

 

플래그는 /flag 위치에 있다고 한다.

 

 

문제 소스코드는 별도로 주어지지 않고

 

문제 페이지 주소만 주어진다.

 

문제 페이지에 들어가면 이런 화면이 나온다.

 

CCE 엔터테이먼트에서 CTS 가 데뷔했다고 한다..

 

 

F12를 눌러 개발자 도구에서

 

해당 페이지의 HTML 을 살펴보았다.

 

페이지 중간쯤에 

 

2021냔 5월 CTS 의 스케줄표를 다운받을 수 있는 링크가 있는데

 

URI가 download.php?file=<다운받을 파일 경로>

 

형태로 구성되어 있었다.

 

쉬운 난이도의 문제라고 했기 때문에

 

전형적인 LFI 취약점 일것이라 생각했다.

 

URL에서 ? 뒤에오는 부분은 변수 라고 생각하면 된다.

 

download.php 페이지에서는 file이라는 변수를 선언하고, 

 

그 변수에 다운받을 파일을 담아 사용자에게 전달하는 것이다.

 

이런식으로 웹 페이지를 구현할 경우, PHP 환경에서 include() 함수를 사용하는데,

 

적절한 필터링이 없다면 LFI(Local File Inclusion) 취약점이 발생하게 된다.

 

LFI는 말 그대로 서버 내에 있는 파일을 불러와 읽을 수 있는 취약점이다.

 

단순히 웹 페이지의 소스코드 뿐만 아니라 /etc/passwd 와 같인 비밀번호 파일들도 유출이 가능하다.

 

 

그래서 URL 에 이렇게

 

download.php?file=/flag 라고 입력을 하게되면

 

플래그 파일이 다운로드 된다.

 

 

다운받은 flag 파일을 열어보면

 

플래그가 적혀있는것을 볼 수 있다.

반응형