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 대응이 가능하다.
'Web hacking' 카테고리의 다른 글
bWAPP 10. PHP Code Injection (0) | 2022.02.04 |
---|---|
bWAPP 9. OS Command Injection - Blind (0) | 2022.02.04 |
bWAPP 7. Mail Header Injection (SMTP) (진행 예정) (0) | 2022.02.01 |
bWAPP - 6. LDAP Connection Settings (진행 예정) (0) | 2022.02.01 |
bWAPP - 5. iFrame Injection (0) | 2022.01.29 |