오늘 Month of PHP Bugs 에서 발표한 취약점 역시 사용자 입력값 filtering 확장 모듈의 우회 취약점입니다.

( 11일차 취약점 리스트 )
18번째 취약점은 PHP 5.2.0 부터 포함되어 나오는 filtering 확장 모듈의 필터링 기능을 우회하는 취약점입니다. 개념도 무척 간단한데요, 사용자가 소문자로 입력한 문자열을 필터링하기 위해 FILTER_SANITIZE_STRING 옵션과 FILTER_FLAG_STRIP_LOW 옵션을 주어 필터링을 수행하면, HTML 태그 필터링을 우회하는 문제가 발생한다는 것입니다. 예를 들어 위와 같은 조건하에서 <%0bscript> 같은 문자열은 HTML 태그로 인식이 되지 않는 것이죠.
원문에는 이를 이용한 공격 예제가 포함되어 있으니 업무에 참고하시기 바랍니다.
이번 취약점 발표에서도 역시 filtering 확장 모듈에 대한 비난을 잊지 않고 있는데요, filtering 확장 모듈이 add-on 모듈이 아니기 때문에 취약점이 발생할 때마다 PHP 를 업그레이드해야 한다는 점이 문제라고 말하고 있습니다. PHP 프로젝트가 새로운 버전의 PHP 를 내놓을 때까지 기다려야 하기 때문에 해킹에 장기간 노출되게 된다는 거죠.
올해 안에 Hardened PHP 프로젝트에서 PHP 를 재컴파일할 필요 없이 업그레이드가 가능한, 사용자 입력값 검증용 user space 라이브러리를 내놓는다고 하니 기대해봐도 좋을 듯...

( 11일차 취약점 리스트 )
18번째 취약점은 PHP 5.2.0 부터 포함되어 나오는 filtering 확장 모듈의 필터링 기능을 우회하는 취약점입니다. 개념도 무척 간단한데요, 사용자가 소문자로 입력한 문자열을 필터링하기 위해 FILTER_SANITIZE_STRING 옵션과 FILTER_FLAG_STRIP_LOW 옵션을 주어 필터링을 수행하면, HTML 태그 필터링을 우회하는 문제가 발생한다는 것입니다. 예를 들어 위와 같은 조건하에서 <%0bscript> 같은 문자열은 HTML 태그로 인식이 되지 않는 것이죠.
원문에는 이를 이용한 공격 예제가 포함되어 있으니 업무에 참고하시기 바랍니다.
이번 취약점 발표에서도 역시 filtering 확장 모듈에 대한 비난을 잊지 않고 있는데요, filtering 확장 모듈이 add-on 모듈이 아니기 때문에 취약점이 발생할 때마다 PHP 를 업그레이드해야 한다는 점이 문제라고 말하고 있습니다. PHP 프로젝트가 새로운 버전의 PHP 를 내놓을 때까지 기다려야 하기 때문에 해킹에 장기간 노출되게 된다는 거죠.
올해 안에 Hardened PHP 프로젝트에서 PHP 를 재컴파일할 필요 없이 업그레이드가 가능한, 사용자 입력값 검증용 user space 라이브러리를 내놓는다고 하니 기대해봐도 좋을 듯...

덧글