PHP Injection: Difference between revisions

From CS Wiki
(새 문서: ; PHP 에서 구문 실행 취약점으로 공격자가 원하는 코드를 실행할 수 있는 취약점 PHP 뿐만 아니라 JSP, ASP와 같은 다른 서버사이드 언어에서...)
 
No edit summary
Line 16: Line 16:
include($test);
include($test);
</syntaxhighlight>
</syntaxhighlight>
== 대응 ==
* 취약점이 발생하지 않도록 코딩한다.
** 변수를 통해 값이 할당되거나, 인클루드 되거나, 파일이 실행되지 않도록 한다.
** 필요한 경우 예상치 못한 파일이 열리지 않도록 조건문을 추가한다.
* php 설정을 통해 url기준으로 파일이 실행되지 않도록 한다.
** php.ini에 allow_url_fopen 을 off로 설정

Revision as of 05:39, 25 May 2018

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로 설정