주통기반-운영체제 명령 실행

황인환·2024년 8월 13일

정의

  • 웹 사이트 내 운영체제 명령어가 실행되는지 확인하는 것을 의미합니다.

원인

  • 사용자 입력의 검증 부족: 사용자로부터 입력받은 데이터가 적절한 검증절차를 거치지 않고 직접 전달되면서 발생합니다.

위협

  • 해당 취약점이 존재하는 경우 부적절하게 권한이 변경되거나 시스템운영에 악영향을 줄 가능성이 있습니다.

TEST방법

  • 에러 페이지 또는 HTTP 응답헤더에 노출되는 웹서버 버전 정보를 수집 후 운영체제 명령 실행 관련 알려진 취약점 검색
    참고) https://cwiki.apache.org/confluence/display/WW/Security+Bulletins

  • 웹 어플리케이션에 전달되는 파라미터 값에 공개적으로 알려진 운영체제 명령 실행
    ex) ?redirect:https://www.URL.com

공격시나리오

  • 서버 운영체제가 Linux/Unix인 경우
  1. 운영체제 명령 실행되는지 TEST 합니다.

  2. sudo /bin/sh 이거는 쉘 실행이고 sudo -u root bash 이거는 루트권한으로 변경합니다.

  3. /etc/passwd 등 중요한 파일에 접근하여 정보 취득을 합니다.

대상 & 판단기준 & 조치방법

설명
대상웹 어플리케이션 소스코드, 웹 방화벽
판단기준양호: 임의의 명령어 입력에 대한 검증이 이루어져 TEST시 명령어 실행이 안된경우
취약: 임의의 명령어 입력에 대한 검증이 이루어지지 않아 TEST시 명령어 실행이 경우
조치방법웹서버 및 웹 어플리케이션 서버를 최신버전 업데이트 진행
어플리케이션은 운영체제로부터 명령어를 직접적으로 호출하지 않도록 함
부득이한 경우 소스코드나 웹방화벽에서 특수문자, 특수구문에 대한 검증을 해야 함

0개의 댓글