- PHP 에서 구문 실행 취약점으로 공격자가 원하는 코드를 실행할 수 있는 취약점
PHP 뿐만 아니라 JSP, ASP와 같은 다른 서버사이드 언어에서도 발생 가능성이 있다. 그러나 대부분의 경우는 코딩을 아주 취약하게 하지 않는 이상 발생 가능성이 적다.
발생 가능한 코드
- 아래 예의 경우 변수값 설정에 따라 특정 코드를 실행시키거나 특정 파일을 인클루드 하도록 조작할 수 있다.
$myvar = "varname";
$x = $_GET['arg'];
eval("\$myvar = \$x;");
$test = $_GET['dbset'];
include($test);
대응
- 취약점이 발생하지 않도록 코딩한다.
- 변수를 통해 값이 할당되거나, 인클루드 되거나, 파일이 실행되지 않도록 한다.
- 필요한 경우 예상치 못한 파일이 열리지 않도록 조건문을 추가한다.
- php 설정을 통해 url기준으로 파일이 실행되지 않도록 한다.
- php.ini에 allow_url_fopen 을 off로 설정