LFI(Local File Inclusion) 취약점 - WordPress Mail Masta 플러그인(2)

by Toff

   개요
이번 포스팅에서는 이전 포스팅에 이어 Mail Masta 플러그인을 사용해 LFI(Local File Inclusion) 취약점에 대해서 알아보자. 환경 구성과 대응 방안은 이전 포스팅과 같기에 생략한다.


   실습 순서
이전 실습에서 출력하지 못했던 php 코드를 출력하는 방법에 대해서 실습해보도록 하자.

PHP 에서는 5.0 이상 버전부터 wrapper 기능이 추가되었다. 해당 기능을 사용하면 php 파일(페이지)의 소스 코드의 인코딩된 값을 출력할 수 있다. wrapper 기능의 자세한 설명은 http://php.net/manual/kr/wrappers.php을 참고하도록 하자. 그림 1-1 과 같이 pl=php://filter/convert.base64-encode/resource=경로(/var/www/html/wordpress/wp-config.php) 코드를 삽입하면 아래와 같이 base64 로 인코딩 된 값이 출력된다.
 그림 1-1 wp-config.php 인코딩 값 출력

https://www.base64encode.org/에 접속해 해당 값을 디코딩 하면 그림 1-2 와 같이 wp-config.php 소스 코드를 모두 확인할 수 있다. 
 그림 1-1 wp-config.php 디코딩 값 출력


   결과 분석
이전 실습에서 확인하지 못한 소스 코드를 출력하는 법을 실습하였다. 이번 실습의 취약점을 이용해 다른 워드프레스 플러그인의 소스 코드를 확인한다면 2차적인 취약점을 쉽게 파악할 수도 있다. 마지막 포스팅에서 php 코드 삽입으로 웹쉘을 업로드하는 실습을 진행하도록 하자.