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 |