그러냐

PHP $_SERVER['PHP_SELF'] 취약점 본문

php 시큐어코딩

PHP $_SERVER['PHP_SELF'] 취약점

관절분리 2017. 1. 26. 11:13
반응형

PHP에서 $_SERVER['PHP_SELF']를 사용하면 취약점이 발생하기도 한다.

가령 form을 사용하는 경우 값을 보낸 페이지와 값을 받는 페이지가 같은 경우 다음과 같이 작성하기도 하는데,

<form action='<?php $_SERVER['PHP_SELF'];'>

<input type='submit'>

</form>


이 경우 XSS 공격에 취약할 수 있다.


PHP_SELF는 페이지 스스로의 URL을 의미한다.

즉 pjy.pjy/pjy/pjy.php에 위 form 이 있다면 이는 사용자에게 다음과 같이 보여진다.

<form action='pjy.pjy/pjy/pjy.php'>

<input type='submit'>

</form>


만약 여기서 경로와 확장자 뒤에 XSS 공격 코드( '  onload=alert(1) ' )를 넣는다면 form은 아래와 같이 구성된다.

URL: pjy.pjy/pjy/pjy.php'%20onload=alert(1)%20'


FORM:

<form action='pjy.pjy/pjy/pjy.php' onload=alert(1) ''>

<input type='submit'>

</form>


form태그가 로드된 후 alert(1)이 실행될 것이다.

$_SERVER['PHP_SELF']대신 $_SERVER['SCRIPT_NAME']로 사용하면 고칠 수 있다.


End.

반응형

'php 시큐어코딩' 카테고리의 다른 글

웹 보안 가이드라인 1. XSS - 초안  (1) 2017.03.20
[PHP] strcmp 취약점을 이용한 인증 우회  (0) 2017.01.26
PHP "==" 연산자 취약점  (0) 2017.01.26
php 시큐어 코딩  (0) 2017.01.26
php 취약점 TOP 5  (0) 2017.01.26