사용자에게 변형된 주소 반환 alias = redirect WAS 내부 자동 변환 RedirectMatch 301 ^/\ /dvwa/ (모듈 사용 X) RewriteEngine On (기본 제공 모듈 사용(rewrite 모듈)) RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^/?$ /dvwa/ [R=301,L] nginx 80 -> 443 location redirect 적용으로 사용 proxy 설정을 통해 껍데기 WAS처럼 동작시킬 수 있음. Vulnerability: File Inclusion 파일을 포함한다. http://172.16.16.16/dvwa/vulnerabilities/fi/?page=include.php http://172.16.16.16/dvwa/vulnerabilities/fi/?page=../../../../../../../../../../etc/passwd 파일 삽입 취약점 공격자가 악성 서버 스크립트를 서버에 전달, 해당 페이지를 통해 악성코드르 실행시킨다. /bin/bash - 쉘 web shell /var/www/html/upload/name.jsp or .php로 시스템에서 강제 실행 가능. chroot : 현재 설정 페이지를 root로 인식하게 만들어 상위 디렉토리에 대한 접근을 제한한다. 악성 스크립트가 삽입되는 위치에 따라 LFI(local file inclusion) RFI(Remote file inclusion) RFI : 악성 코드 다운로드 유도 (유포 시나리오) 경로 제한 또는 파라미터 변조 등에 대한 필터링의 부재로 경로 접근, 파일 실행, 외부 파일 다운로드 등의 다양한 공격으로 활용 가능 GET으로 특정 파라미터를 이용하여 include 될 수 있는 페이지 코드 일부(취약한 대상) 유추 및 공격 수행 if(isset($_GET['submit'])){ $target=$_REQUEST['fname']; ~~~ // 외부로부터 입력 받은 $target 파라미터를 이용, include 수행 include($target); ~~~ } 이후 경로 유추, 추가 정보 획득 등을 통해 실제 file에 대한 URI로 파라미터를 이용한 include 수행 혹은 프록시 툴 등을 이용하여 User-Agent 헤더 필드에 같은 명령어 수행 구문 삽입 : fpm 서비스에 던지면 권한과 상관 없이 실행시킬 수 있다. 1) 관리자는 소스 코드 상 include, require 등의 구문/함수가 존재하는지 사전 검증해야 한다 --> (퍼징 : fuzzing) 사용자 입력값을 통한 원격 파일 접근을 차단해야함. include : 오류 발생 시 에러 메시지를 출력 후, 스크립트를 계속해서 실행 require : 오류 발생 시 에러 메시지를 출력 후, 스크립트 실행 중지 eval allocate 2) 단순 접근 차단 외, 경로 변경에 대한 방지(경로 이동 문자열 필터링) : .././.././ 3) php.ini 설정상에 display_errors = Off로 설정해야 한다. Hash-Identifier https://raw.githubusercontent.com/Miserlou/Hash-Identifier/master/Hash_ID.py