Command Injection ?
- 취약한 애플리케이션을 실행 중인 서버에서 임의의 운영체제(OS) 명령을 실행하는 공격
- system(), exec() 등 운영체제 명령어를 실행시키기 위해 사용되는 함수들을 이용해 개발을 함으로써 주로 발생되는 취약점
- 해당 취약점이 존재하여 공격에 당할 경우 애플리케이션을 구동하고 있는 시스템 계정의 Shell 권한을 공격자가 획득한 것과 같은 상황이기 때문에 상당히 위험도가 높은 취약점 중 하나이다.
Command injection 실습 과정
- 우선 본 실습에 앞서 실습 환경의 경우 리눅스 환경에서 DVWA 환경을 구축한 후 가장 취약한 환경인 Low 레벨 환경에서 실습을 진행하였습니다.
- Command Injection 탭에 들어오면 텍스트란에 입력한 IP를 대상으로 일반적인 Ping 명령어를 수행하는 기능이 구현되어져 있는 것을 확인할 수 있다.
- 위 기능을 구현한 소스코드를 살펴보면 텍스트란에 입력한 값이 아무런 검증없이 target 이라는 매개변수에 저장되어 Ping 명령어 뒤쪽에 입력되어 사용되어지는 것을 확인할 수 있다.
- 즉, 입력한 값을 아무런 검증 절차없이 그대로 사용하는 구조이기 때문에 Ping 명령어 뒤쪽에 세미콜론(;) 등 다중 명령어를 입력할 수 있는 특수 문자를 입력하여 추가적으로 다른 시스템 명령을 수행할 수 있을 것으로 예상되었다.
- IP를 입력한 후 예상한 내용인 세미콜론(;)을 뒤쪽에 입력하여 다중 명령을 사용한다는 구문을 추가적으로 입력한 후 시스템 정보를 확인하는 명령어를 추가적으로 입력한 결과 Command Injection 공격에 성공하여 시스템 정보가 추가적으로 출력 되는 모습을 확인할 수 있다.
Command Injection 대응 방안
- 근본적인 문제를 해결하기 위해 취약한 함수 ( system(), exec() 등 )를 사용하지 않고 개발을 하는 방법이 가장 좋다.
- 부득이하게 시스템 명령을 사용할 수 있는 함수를 사용해야 한다면 입력값을 검증할 수 있는 로직을 구현하여 부적절한 입력값을 제한한다.
- 최소 권한의 원칙을 적용하여 각 시스템 계정마다 적절한 권한을 부여함으로써 공격에 당하더라도 피해가 최소화될 수 있도록 한다.
'CERT > 웹 모의해킹 실습' 카테고리의 다른 글
[웹 해킹] Insecure CAPTCHA / DVWA 환경 실습 / 대응 방안 ( 캡챠 우회 공격 ) (0) | 2023.06.03 |
---|---|
[웹 해킹] File Upload 공격 / DVWA 환경 실습 / 대응 방안 (0) | 2023.06.03 |
[웹 해킹] File Inclusion 공격/DVWA 환경 실습/대응 방안 (0) | 2023.05.27 |
[웹 해킹] CSRF(Cross-Site Request Forgery) 공격/DVWA환경 실습/대응 방안 (0) | 2023.05.27 |
[웹 해킹] 무차별 대입 (Brute Force)공격/DVWA 환경 실습/대응 방안 (0) | 2023.05.21 |