본문 바로가기
웹/드림핵

simple-ssti

by SH_L 2022. 5. 10.
반응형

[문제]

 

 

[풀이]

 

 

문제에 접속하면 다음과 같은 화면이 나타난다.

 

 

404Error 페이지로 이동하면 URL에 입력된 /404Error를 그대로 출력하는 것을 확인할 수 있다.

 

 

robots.txt 페이지로 이동하면 위와 마찬가지로 URL에 입력된 /robots.txt를 그대로 출력하는 것을 확인할 수 있다.

 

 

URL에 플래그가 있는 flag.txt를 입력하면 플래그가 출력되지 않을까 싶어 입력해보았지만 의도와 다르게 문자열 '/flag.txt'를 그대로 출력한다. 우선 소스 코드를 살펴보자.

 

 

문제에서도 알 수 있듯이 해당 문제는 SSTI 취약점을 이용하여 해결하는 문제이다. SSTI 취약점은 서버 측의 기본 템플릿 구문을 이용하여 악성 페이로드를 삽입, 실행하면서 생기는 취약점을 말한다. 이때 사용되는 페이로드는 웹 템플릿 엔진마다 다르다.

 

 

해당 문제에서는 Flask 템플릿을 사용하고 있다. 기본적으로 Flask의 경우 대부분의 정보들이 config 클래스에 저장된다. 따라서 config 안에 있는 내용을 출력하게끔 하는 악성 페이로드를 삽입 후 실행하게 되면 플래그를 확인할 수 있다. Flask에서 {{"페이로드"}} 형식으로 실행이 가능하기에 config 안에 있는 내용을 출력하기 위해 {{config}}를 입력해주었다.

 

 

URL에 {{config}}를 입력하자 다음과 같이 플래그를 획득했다.

반응형

' > 드림핵' 카테고리의 다른 글

session  (0) 2022.05.14
web-misconf-1  (0) 2022.05.10
php-1  (0) 2022.05.04
proxy-1  (0) 2022.05.04
pathtraversal  (0) 2022.05.01