웹취약점/그누보드

웹취약점점검- SSI Injection

CrongBoss 2021. 1. 7. 09:50

SSI Injection 이란?

HTML 페이지의 전체 코드를 수정하지 않고 공통 모듈 파일로 관리하며 동적인 내용을 추가하기 위해 만들어진 기능으로 주로 방문자 수 세거나 홈페이지 로고 수정  등 간단한 기능 추가할 때 사용한다. 또한 '.shtml' 확장자 파일을 사용한다. 만약 SSI 인젝션 취약점이 있는 경우 페이지에 악의적인 코드를 주입하는 공격이 가능한 취약점

취약점 개요

점검내용 ■ 웹페이지 내 SSI 인젝션 공격 가능성 점검
점검목적 ■ 적절한 입력값 검증 절차를 마련하여 악의적인 파일을 include 시키지 못하도록 하여 불      법적인 데이터 접근을 차단하기 위함
보안위협 ■ 해당 취약점이 존재할 경우 웹서버 상에 있는 파일을 include 시켜 명령문이 실행되게 함      으로 불법적으로 데이터에 접근할 수 있음
■ 공동 SSI 구현은 외부의 파일을 Include 할 수 있는 명령어를 제공하며, 웹 서버의 CGI 환      경 변수를 설정하고 출력할 수있고, 외부의 CGI 스크립트나 시스템 명령어들을 실행할 수
    있으므로 사용자 입력 값에 대한 검증 로직을 추가로 구현하여야 함

 

점검대상 및 판단기준

대상 ■ 그누보드(localhost)
판단기준 양호: 사용자 입력 값에 대한 검증이 이루어지는 경우
취약: 사용자 입력 값에 대한 검증이 이루어지지 않는 경우
조치방법 사용자 입력 값에 대한 로직 추가 구현

 

점검 및 조치 사례

1) 인수값에 구문삽입후 반환되는 페이지에 현재시간이 표시되는지 확인

 

사용후기폼

삽입구문: <!--#echo var="DATE_LOCAL" -->

 

2) 인수값에 구문삽입후 반환되는 페이지에 디렉터리 파일이 표시되는지 확인

 

사용후기폼

삽입구문: <--exec cmd="is" -->

 

※보안설정방법

-사용자 입력으로 사용 가능한 문자들을 정해놓음

-정해진 문자들을 제외한 나머지 모든 문자들을 필터링 함

-필터링 해야 하는 대상은 GET 절의 문자열, POST 데이터, 쿠키, URL, 그리고 일반적으로 브라우저와 웹 서버가 주고받   는 모든 데이터를 포함하며, 아래는 특수문자에 대한 Entity 형태를 표시한 것임

변경 전 < > " ( ) # &
변경 후 &lt; &gt; &quot; &#40 &#41 &#35 &amp

-웹 서버의 SSI 기능을 사용하지 않거나, 웹 방화벽에 특수문자를 필터링하도록 룰셋 적용

 

 

참고

www.kisa.or.kr/public/laws/laws3_View.jsp?cPage=6&mode=view&p_No=259&b_No=259&d_No=106&ST=T&SV=

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드

www.kisa.or.kr