카테고리 없음

SSI 인젝션 개념 정리 및 실습

작성자 - 한수임

SSI 인젝션은 보통 환경이 특이하기에 잘 쓰이지는 않지만 혹시 맞닥뜨렸을 경우 당황하지 않고 정리해둔 개념을 확인하고 적용하기 위해 정리해 보았다.

 

1. SSI란??

 

- SSI(Server Side Includes) 서버 사이드 측에 필요한 자료를 실행할 수 있도록 하는 것, 확장자는 shtml을 사용함.

 

2. 실습

 

취약한 환경에 반응 확인하기 IP주소를 알려주는 서비스

 

이름과 성 입력 시 IP주소와 함께 출력되는 것을 확인, ssii.shtml로 구성된 것을 보아 ssi 인젝션 시도

 

명령어 삽입 : <!--#echo var="DATE_LOCAL" --> (날짜 출력 명령어)

 

날짜가 생성된 것을 확인

 

어떻게 작동이 되는 것인지 서버 측 코드를 살펴보자

 

line 값에 변수에 대한 값들을 저장하게 되는데, 해당 값들의 검증이 이루어지지 않아 서버에서 실행되게 되었다.

 

이로써 추가적인 다른 공격이 가능할 것 같아 시스템 명령을 실행해 보았다.

명령어 : <!--#exec cmd="ls" --> 명령어 : 파일목록 나열

 

역시나 그대로 명령이 실행되었다.

 

해결방안

 

- 입력값에 특정 스크립트가 삽입되지 않도록 XSS와 같이 특수문자 필터링을 적용해 준다.

Contents

이 글이 도움이 되었다면, 응원의 댓글 부탁드립니다.