Code::Security/XVWA

취약한 웹 애플리케이션 (XVWA) OS Command Injection 취약점 진단

태군 코드 2018. 9. 11. 16:09
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위 입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다. 


Command Execution은 '원격 명령 실행 취약점'을 말합니다. 이 공격을 사용하면 공격자는 자신이 실행하고자 하는 명령어를 서버에 원격으로 실행하여 악의적인 행위들을 할 수 있습니다.



XVWA 웹 취약점 진단 항목의 하나인 OS Command Injection 화면 입니다.



소스코드를 보시면 해당경로의 home.php 파일을 참조하는걸 알수 있습니다.



home.php 파일의 소스코드를 보시면 입력받은 값을 target 변수에 저장하고 shell_exec 함수를 이용하여 명령어를 실행하고 있습니다. 해당 소스코드에서는 필터링 검증을 하지 않고 입력 값을 바로 실행하므로 ping 이외의 다른 명령어도 실행 할수 있는 취약점 이 존재하고 있습니다.



먼저 정상적인 Ping 값을 입력하였을때 화면입니다. 8.8.8.8 [Submit Button]


ping은 ICMP 프로토콜을 이용하여 'ICMP echo request'라는 요청 메시지를 원격 호스트로 보내 'ICMP echo reply' 메시지가 돌아오는지를 판단하여 원격 호스트의 동작 여부를 확인할수 있습니다.


해당 URL을 보시면 Get 방식을 사용하여 파라미터 값을 넘겨주고 있습니다.


http://자신의 IP/xvwa/vulnerabilities/cmdi/?target=8.8.8.8+%26+echo+aaa+%3E+test.txt+%26+dir



해당 소스코드에서는 필터링 검증을 하지 않기 때문에 연산자를 이용하여, 정보를 출력한 모습입니다. dir 명령어를 통하여 디렉토리 항목이 노출되는 모습을 볼수 있습니다.



echo 함수를 이용하여 test.txt 파일을 생성한 화면입니다. 화면에 보시면 실제 test.txt 파일이 생성된것을 보실수 있습니다.


해당 OS CommandInjection 취약점이 있을경우, 명령어 실행을 물론 정보수집 및 악성 파일을 업로드 하여 스크립트 실행등 다양한 공격을 수행 할수 있습니다.


여기서는 test.txt 파일을 생성하였지만, 실제 악성스크립트 였다면 다양한 공격을 수행할수 있었을 것입니다. 해당 테스트는 꼭 검증된 환경에서 테스트를 해보시기 바랍니다.






반응형