난이도 하 'message'를 클릭해보면 test라는 text가 출력이 되고, URL에 message=test라고 문자열이 노출되는 것으로, GET메서드로 요청하고 있는 것을 확인할 수 있다. PHP에서는 exec(), eval() 함수를 사용한 경우 세미 콜론(;)을 사용하여 다른함수를 실행하는 취약점이 있다.
취약점이 유무를 확인하기 위하여 세미콜론과 system() 함수를 사용한다. system()함수는 문자열 형태의 명령어를 인자 값으로 받아서 명령어를 실행한다. message 변수에 Success문자열을 입력한 후, (;)세미콜론으로 system함수의 'whoami' 를 실행 시켰다. 문자열은 그대로 출력이되고, 'whoami'통하여 'www-data'가 출력되었다.
시스템 정보를 획득할 수 있는 다른 명령어도 실행해볼 수 있다. ( 'shell_exec()' ) ※공격자는 현재 웹 권한을 가지고 있으므로 상위권한이 필요한 파일의 경우에는 접근이 불가능하다. ex) /etc...
#
htmlspecialchars
#
PHP코드인젝션
#
기타인젝션
원문 링크 : 기타 인젝션 공격 - PHP 코드 인젝션