1. PHPUnit이란?
- PHP 프로그래밍 언어를 위한 유닛 테스트 프레임워크
- SUnit과 함께 기원한 유닛 테스트 프레임워크를 위한 XUnit 아키텍처의 인스턴스이며 JUnit과 함께 대중화
- PHPUnit은 Sebastian Bergmann이 개발하였으며 개발 자체는 깃허브에서 호스팅되고 있음
2. CVE-2017-9841
- 해당 취약점은 /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php에 대한 적절한 인증과정이 없어 발생되는 취약점
3. 취약점 분석
- 4.8.28 이전의 버전 및 5.6.3 이전의 5.x PHPUnit에 공격이 가능하다.
- eval-stdin.php에 해당 코드에 의해 취약점이 발생한 것으로 판단된다. php://input 함수를 이용해 원시 데이터를 읽은 후 eval 함수로 해당 명령을 실행하기 때문이다.
- 공격자들은 [캡쳐 3]의 php 코드를 통하여 먼저 취약점이 존재하는지 테스트 후 [캡쳐 4] 방식 등으로 공격을 진행.
4. 대응방안
1. 최신 버전의 패치를 적용.
2. 보안 장비에 해당 패턴을 등록하여 탐지 및 차단
( ex) /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php 경로로 요청을 탐지 및 차단 할 수 있도록 룰 설정)
3. .htaccess 파일을 /vendor 폴더에 위치 시킨 후 관련 설정을 등록.
* .htacccess 파일이란 "hypertext access"의 약자로 디렉토리에 대한 접근 허용 여부 등 설정 옵션을 제공한다.
<참고>
'취약점 > RCE' 카테고리의 다른 글
iControl REST unauthenticated RCE(CVE-2021-22986) (1) | 2022.09.25 |
---|---|
vBulletin Pre-Auth RCE(CVE-2019-16759) (0) | 2022.09.20 |
Bash Shell Shock(CVE-2014-6271) (2) | 2022.09.13 |
bWAPP PHP Code Injection (0) | 2022.07.29 |
ThinkPHP 원격 코드 실행 취약점(CVE-2018-20062) (0) | 2022.07.19 |