본문 바로가기

Penetration/WEB

[주요정보통신기반시설] 6. SSI 인젝션

오랜만에 주요정보통신기반시설에 대해서 글을 써보고 싶었습니다.

이번에는 SSI 인젝션에 대해서 알아보고자 합니다.

 

SSI(Server Side Includes) 서버 사이드 측에 필요한 자료를 실행할 수 있도록 하는 것으로 shtml 확장자를 사용하는 것이 확인 될 때 점검합니다. (쓰이는 경우를 잘 보지 못했습니다.)

 

SSI 인젝션의 경우 사례가 거의 없는 반면에 비박스에서 찾았던 사례가 있으므로 이를 참조하려고 합니다.

주요 정보통신 기반 가이드에 따라서 실습해보려고 합니다.

 

임의의 이름을 First name과 Last name에 작성하여 웹 페이지의 반응을 살펴봅니다.

이후에 Lookup을 눌러서 접속하면 해당 이름이 출력되는 것을 확인할 수 있습니다.

<!--#echo var="DOCUMENT_ROOT" --> 명령을 이용해서 웹 서버의 환경 변수 중 하나인 DOCUMENT_ROOT의 값을 현재 웹 페이지에 출력하도록 합니다. 밑에는 <!--#echo var="date_local" -->를 입력하여 시간을 확인하도록 합니다.

해당 명령어에 맞게 실행되어 웹 페이지에 결과가 나타나는 것을 확인할 수 있습니다.

위의 명령어들이 작동하는 것을 근거로 하여 <!--#exec cmd="ls" -->를 실행시킵니다. 

위의 입력을 통해서 아래의 결과가 출력되는 것을 확인할 수 있습니다.

주요정보통신기반시설 취약점 진단 가이드의 내용은 아래와 같습니다.

 

개인적인 경험으로 미루어볼 때

Xpath나 SSI가 단독적으로 터지는 경우는 거의 찾기 어려웠으며

오히려 XXE Injection이 자주 만나볼 수 있거나 시도할 수 있는 취약점이었으므로 오히려 XXE Injection이 취약점으로 있는게 낫지 않았을까 하는 생각이 든다.