본문 바로가기

study

PHP $_SERVER['PHP_SELF'] 취약점

PHP $_SERVER['PHP_SELF'] 취약점


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.

 

'study' 카테고리의 다른 글

jquery input 추가 제거 하기  (0) 2017.02.05
php 게시판 리스트  (0) 2017.01.21
substr사용법  (0) 2017.01.21
mysql 특정 문자열 개수 구하기  (0) 2017.01.21
include(), require(), include_once(), require_once() php  (0) 2016.09.28