본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


웹 취약점(Web vulnerability)

4. 운영체제 명령실행(OS Command Execution)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2021. 11. 29.

운영체제 명령실행 이라는 취약점은, 웹에서 시스템 명령어를(system, exec) 실행 시킬 수 있는 환경을 제공한 대상에게 실행되는 취약점 입니다.

사용자 입력값에 대한 필터링이 이루어지지 않을 경우 서버의 정보를 탈취 하거나 변조 할 수 있는 취약점 입니다.

예를 들면, "IP를 탐색 해 주는 사이트", "내 DNS정보를 알려주는 사이트" 또는 "프로그래밍 코드실행이 가능한 코딩테스트 연습 사이트" 등과 같은 운영체제 명령어실행되는 기반의 기능이 있는 곳을 의미 합니다.

해당 취약점을 대비하는 이유는, 시스템 명령어 호출로 인한 백도어 설치 및 관리자 권한 탈취 등의 문제가 발생 할 수 있으므로 이에대한 대비가 가능 하여야 합니다.

 

 

#방법1

명령어(Command)가 실행되는 기반의 기능이라면 가장 먼저 정규식을 통하여 필요하지 않는 명령어를 제외하는 기능을 만들어야 합니다.

"exit", "cat", "shutdown" 등등, 운용체제에 문제를 일으 킬 수 있는 명령어는 삽입되지 않도록 필터하는 메소드(함수)를 만들어야 합니다.

또는 허용 가능한 명령어를 배열로 처리하여 해당 배열에 대한 값인 경우에만 실행 되도록 하면 될 것 입니다.

* Java Pattern 클래스를 통하여 정규식을 통한 금지어 제거가 필수 입니다.

https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

 

Pattern (Java Platform SE 8 )

Enables canonical equivalence. When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression "a\u030A", for example, will match the string "\u00E5" when this flag is s

docs.oracle.com

물론 명령어를 받아서 실행하는 웹 어플리케이션이 많지는 않습니다.

하지만 이에 해당하는 기능을 구현 중 이라면 명령어에 대한 필터 기능은 반드시 구현되어야 할 것 입니다.

 

 

이상으로 웹 표준 취약점 중 한가지인 운영체제 명령실행(OS Command Execution) 취약점에 대해서 살펴 보았습니다.

궁금한점 또는 틀린 부분은 언제든 연락주세요! 👻

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글