-
해당 페이지의 홈으로 가면 2개의 엔드포인트를 찾을 수 있고, 이 중 특이한 점은 URL 상의 경로를 바로 화면에 출력한다는 점이다.



-
SSTI(Server Side Template Ijection) 공격이란?
- 서버 측 템플릿 공격은 공격자가 native template 구문을 사용하여 악성 페이로드를 템플릿에 주입한 다음 서버 측에서 실행하는 경우를 말한다.
- SSTI는 사용자 입력이 데이터로 전달되는 대신 템플릿에 직접 연결될 때 발생할 수 있다. 이를 통해 공격자는 임의의 템플릿 지시문을 주입하여 템플릿 엔진을 조작할 수 있으며 서버를 완전히 제어할 수 있다.
- XSS와 달리 템플릿 주입은 웹 서버의 내부를 직접 공격하는 데 사용할 수 있으며, 종종 원격코드실행을 얻어 모든 취약한 애플리케이션을 잠재적 피벗 포인트로 전환한다.
- 해서 http://vulnerable-website.com/?username=${7*7} 이런식으로 구현 할 수 있다. 그래서 직접 URL에 입력을 해보니 그 결과를 화면에 바로 출력한다는 사실을 알 수 있다.


-
문제의 소스 코드에서 app.secret_key = FLAG 이기 때문에 형식에 맞추어 {{config}}를 입력해보면 플래그를 획득할 수 있다.
{{ config }}는 Flask에서 애플리케이션 설정값들을 담고 있는 config 객체를 의미. 이건 딕셔너리처럼 작동해서, Flask 앱의 설정값들을 조회할 수 있다.
