[웹 취약점] 6. SSI 인젝션, 7. XPath 인젝션, 8. 디렉터리 인덱싱

6. SSI 인젝션

  • 점검내용 : 웹페이지 내 SSI 인젝션 공격 가능성 점검
  • 대상 : 웹 애플리케이션 소스코드, 웹 서버, 웹 방화벽
  • 조치방법 : 사용자 입력 값에 대한 검증 로직 추가 구현

참고

  • SSI(Server-Side Includes) : CGI 프로그램을 작성하거나 혹은 서버사이드 스크립트를 사용하는 언어로, 웹 서버가 사용자에게 페이지를 제공하기 전에 구문을 해석하도록 지시하는 역할을 함
  • SSI(Server-Side Includes) 인젝션 : HTML 문서 내 입력받은 변수 값을 서버 측에서 처리할 때 부적절한 명령문이 포함 및 실행되어 서버의 데이터가 유출되는 취약점

점검방법

  1. 사용자가 입력 가능한 파라미터 값에 를 삽입하여 전송 후 반환되는 페이지에 사이트의 홈 디렉터리가 표시되는지 확인
  2. 사용자가 입력 가능한 파라미터 값에 를 삽입하여 전송 후 반환되는 페이지에 디렉터리의 파일 리스트가 표시되는지 확인
  3. HTTP 요청(Request) 헤더에 명령어를 삽입하여 실행되는지 확인 (※ 예로 제시한 것으로, 웹 사이트 환경에 맞춰 점검하여야 함)
GET / HTTP/1.0
Referer: <!--#exec cmd="/bin/ps ax"-->
User-Agent: <!--#include virtual="/proc/version"-->

7. XPath 인젝션

  • 점검내용 : 웹페이지 내 조작된 XPath 쿼리 공격 가능성 점검
  • 대상 : 웹 애플리케이션 소스코드, 웹 방화벽
  • 조치방법 : 쿼리 입력 값에 대해 검증 로직 추가 구현

참고

  • Xpath : 확장 생성 언어 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어. Xpath는 일종의 쿼리로, XML DB 내용을 선택하고 조작하기 위하여 사용한다.
  • XML은 트리구조로 구성. ‘/’ 문자를 사용해 최상위 노드부터 질의할 곳을 지정할 수 있다.
  • Xpath 인젝션: XML 구조에 악의적인 행위를 일으키는 내용을 삽입하거나 Xpath를 조작하여 XML의 내용을 노출하는 취약점

점검방법

  1. ['and'a'='a, 'and'a'='b], [ and 1=1, and 1=2]의 셋트의 값을 각각 삽입하여 쿼리의 참, 거짓에 따라 반환되는 페이지가 다른지 확인
  2. 다음 값을 입력해서 에러가 발생하지 않는지 확인 ‘ or count(parent::[position()=1])=0 or ‘a’='b ‘ or count(parent::[position()=1])>0 or ‘a’='b 1 or count(parent::[position()=1])=0 1 or count(parent::[position()=1])>0

보안설정방법

XPath 쿼리에 사용자가 값을 입력할 수 있는 경우, 엄격한 입력 값 검증을 통해 필요 문자만을 받아들이게 함

( ) = ‘ [ ] : , * / 등 XPath 쿼리를 파괴하는 특수문자는 입력하지 못하게 하여야 하며, 특정 특수문자만을 필터링하는 것이 아닌 허용된 문자 이외의 모든 입력을 허용하지 않아야 함 (화이트리스트)


8. 디렉터리 인덱싱

  • 점검내용 : 웹 서버 내 디렉터리 인덱싱 취약점 존재 여부 점검
  • 대상 : 웹 서버
  • 조치방법 : 웹 서버 설정을 변경하여 디렉터리 파일 리스트가 노출되지 않도록 설정

참고

  • 디렉터리 인덱싱 취약점 : 특정 디렉터리에 초기 페이지 (index.html, home.html, default.asp 등)의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 취약점

점검 방법

  1. URL 경로 중 확인하고자 하는 디렉터리까지만 주소창에 입력하여 인덱싱 여부 확인
    예시: http://도메인명/data/
  2. 디렉터리 끝에 %3f.jsp 문자열을 붙여 디렉터리 인덱싱이 되는지 확인

 

 

 

참고자료

주요정보통신기반시설_기술적_취약점_분석ㆍ평가_방법_상세가이드

https://tkdrms568.tistory.com/155

http://www.itdaily.kr/news/articleView.html?idxno=54448

728x90