bWAPP 8. OS Command Injection

Web hacking|2022. 2. 1. 20:23

                                                         OS Command Injection

 

os command Injection

 

- 악의적인 명령 삽입, 서버로 전송되는 요청 정보에 악의적인 명령을 삽입하여 불필요한 동작을 실시하거나, 서버/시스템/db 중요 정보를 획득할 수 있는 취약점이다.

 

 

 

- Low 레벨 -

vi commandi.php

쉘명령이 실행되는 소스코드를 확인가능하다.

 

lookup을 클릭할 경우 nslookup 명령어가 실행되는 것을 확인

명령어를 이어붙여 해당 단계를 실습

 

| : 앞에서 실행한 명령어 출력 결과를 뒤에서 실행하는 명령어 입력값으로 대체

; 한개의 라인에 여러개 명령어를 수행해줌

&& : 첫번쨰 명령어가 성공되면 다음 명령어를 수행함 ( 실패 시 다음 명령어 실행 x)

|| : 첫번째 명령어가 실패해도 다음 명령어를 수행함 ( 성공 시 다음 명령어 실행 x )

 

 

 

 

 

 

- Low 레벨 결과 및 입력 값-

 

www.google.com; cat /etc/passwd

nslookup 명령어와 /etc/passwd의 내용을 볼 수 있었다.

 

 

 

 

 

 

 

 

 

 

- Medium 레벨 -

 

해당 레벨에서는 &;를 필터링하는 것을 확인 할 수있다.

 

또한 그렇기 때문에

Low 레벨에서 사용하는 ;를 사용할 수없기 때문에 대체한다

www.google.com; cat /etc/passwd

->

Medium 레벨

www.nsa.gov | cat /etc/passwd

해당 명령어를 사용하게되면 우회가 가능하다.

 

 

 

 

 

- Medium 레벨 결과 및 입력 값-

 

www.nsa.gov | cat /etc/passwd

 

 

 

 

 

 

 

 

- High 레벨 -

commandi_check_2 함수는 functions_external.php 에 정의되어있고

 

escapeshellcmd 함수를 사용하고 있습니다.

 

 

escapeshellcmd

 

- 시스템 셸로 실행할 수 있는 특수 문자에 백 슬래시를 붙여 명령을 실행할 수 없도록 방어합니다. 사용하는 우회 문자는 #, & , l , ' , * 등이 내포되어있습니다.

따라서 해당 방법으로 os command injection 대응이 가능하다.

 

 

댓글()