운영 체제 명령 주입이란 무엇입니까?
운영 체제 명령 주입은 권한 없는 운영 체제 명령을 실행할 수 있는 웹 보안 취약점입니다. 운영 체제 명령 삽입 취약점은 웹 응용 프로그램이 실행될 비관리화,필터링되지 않은 시스템 명령을 보낼 때 발생합니다. 불충분 한 입력 유효성 검사로 인해 공격자는 셸 수준에서 작동 할 자체 명령을 주입 할 수 있습니다. 공격자는 쿠키,폼 또는 헤더와 같은 사용자가 제공한 데이터를 통해 운영 체제 명령을 도입합니다.
이 취약점은 공격자가 제공한 운영 체제 명령이 일반적으로 취약한 응용 프로그램의 권한으로 실행되기 때문에 위험한 취약점입니다. 따라서 공격자는 응용 프로그램 및 모든 데이터를 손상시키는 호스트 운영 체제 명령 주입줄기를 완전히 제어할 수 있습니다.
공격자가 프로그램에 실행 가능한 입력을 제출하고 해당 입력을 실행하도록 소프트웨어를 속일 수 있을 때 존재하는 코드 삽입 취약점과 달리. 명령 삽입 취약점은 코드를 삽입하지 않고도 임의의 명령을 실행할 수 있는 보호되지 않은 시스템의 약점을 악용합니다. 두 취약점 모두 적절한 입력/출력 데이터 유효성 검사로 인해 발생합니다.
유용한 명령
다음은 공격하는 운영 체제에 대한 추가 정보를 제공할 수 있는 몇 가지 유용한 명령입니다
명령의 목적 |
리눅스 |
윈도우 |
현재 사용자 이름 |
후아미 |
후아미 |
운영 체제 |
이름- |
버전 |
네트워크 구성 |
째챈쨩처쨀짼쨉쨉짹쨀째쩔첩 |
|
네트워크 연결 |
넷스탯안 |
넷스탯안 |
프로세스 실행 |
() |
태스크리스트 |
응용 프로그램에서 명령 삽입 취약점을 테스트하기 위해 함께 연결되도록 명령을 사용할 수 있는 메타문자를 사용해 보십시오. 자신의 명령을 실행할 수 있다면 웹 응용 프로그램이 취약합니다. 다음 명령 구분 기호는 윈도우 및 유닉스 기반 시스템 모두에서 작동합니다:
- &
- &&
- |
- ||
다른 명령 주입 페이로드는 명령이 응용 프로그램이 응답하는 데 걸리는 시간을 기준으로 실행되었는지 확인 할 수 있도록,시간 지연을 트리거 아래의 핑 명령을 포함한다. 아래 명령은 응답을 반환하는 데 10 초가 걸립니다.
&핑-기음 10 127.0.0.1 &
또한 공격자는 자신이 제어하는 도메인에 대한 명령을 사용하여 운영 체제 명령 취약점을 확인할 수 있습니다. 조회가 일어나면 그들의 명령 주입이 성공적 이었다 것 을 그들은 있있다.
응용 프로그램을 테스트하기 위한 다양한 명령:
&&루트 권한으로 실행 중인 경우에만 모든 해시된 암호를 표시합니다.
운영 체제 명령 주입 공격을 방지하는 방법
- 방어 옵션 1:운영 체제 명령을 직접 호출하지 마십시오. 내장 라이브러리 함수는 운영 체제 명령에 대한 아주 좋은 대안입니다.
- 방어 옵션 2:각 운영 체제에 특정한 운영 체제 명령에 추가 된 이스케이프 값.
- 방어 옵션 3:입력 유효성 검사와 함께 매개 변수화-사용자가 제공한 경우 매개 변수화 및 입력 유효성 검사를 피할 수 없습니다.