SSTI (Server Side Template Injection)
·
Web/Web Hacking
SSTI란?공격자가 템플릿 구문을 이용해 악성 페이로드를 템플릿에 주입하고, 서버 측에서 실행되도록 하는 공격-> 사용자의 입력이 데이터로서 템플릿에 전달되지 않고 템플릿 내에 직접 연결될 때 발생이러한 SSTI는 서버 측에서 전달되고 평가되기 때문에, CSTI보다 훨씬 위험도가 높으며 서버의 민감한 파일을 읽거나 RCE와 같은 공격이 가능합니다.템플릿 구문SSTI 가능 여부는 아래와 같은 페이로드를 통해 확인해 볼 수 있습니다. {{9*9}}${9*9}${{9*9}}#{9*9} 웹 페이지에서 만약 파라미터 값을 그대로 출력하고 있다면 아래와 같은 방법으로 SSTI 가능 여부를 확인할 수 있지만만약 그대로 출력하는 것이 아닌 변수를 통해 해당 변수의 값이 출력되는 환경에서는 아래와 같은 방법으로 SSTI..
CSTI (Client Side Template Injection)
·
Web/Web Hacking
CSTI란?클라이언트 사이드 템플릿 엔진을 사용해 동적으로 콘텐츠를 생성할 때, 공격자가 악성 스크립트를 삽입해 이를 실행시키는 공격 -> XSS와 같은 공격에 취약 (Web Template Engine이란?)Client Side Template을 사용한 웹 페이지에서 사용자의 동작에 따라 동적으로 DOM을 생성할 때 XSS에서 사용되는 페이로드가 주입되면 DOM XSS로 이어지게 됩니다.  위와 같이 파라미터 값을 Client Side Template로 출력시키는 환경에서템플릿 구문에 수학식을 입력하였을 때, 해당 식이 그대로 출력되는 것이 아닌, 계산 결과가 출력되는 경우 CSTI가 가능하다는 것임을 확인할 수 있습니..
Web Template Engine이란?
·
Web/개발
Web Template Engine이란?웹 문서가 출력되는 템플릿 엔진을 말하는 것으로 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 말합니다. 쉽게 말해, 고정적으로 사용되는 웹 문서를 템플릿으로 미리 작성해 두고 동적으로 변경되는 데이터 영역만 필요시에 결합해서 웹 문서를 구성하고 화면에 출력하는 것입니다.또한 View Code(HTML)과 Data Logic Code(DB)를 분리시키는데 이는 MVC 패턴과 비슷하게 각각의 역할을 나누어 View에서는 Controller에서 넘어온 데이터를 틀에 끼워 넣어 클라이언트에게 알맞은 웹 페이지를 제공합니다.MVC 패턴이란?Model, View, Controller의 약자로 애플리케이션, 프로젝트를 구성할 때 구성요소를 세 가지..