White Security
Portfolio 문제풀이 본문
Sunshine CTF web 3번
Flask SSTI Injection 문제입니다.
주소에 접속하면 두개의 페이지 링크가 존재합니다.
상단의 Custom greeting을 먼저 살펴보겠습니다.
/hello/name 주소로 바로 연결되고
파이썬 웹 프레임워크 Flask를 사용하고 있다고 알려주네요.
뒤의 name 부분은 자유롭게 변경이 가능합니다.
바로 SSTI가 가능한지 확인해 보기 위해서
49를 기대하고 {{7*7}}를 삽입해 보았습니다.
그러나 escape되는 듯 적용되지 않습니다.
두번째 페이지를 살펴 보겠습니다.
단일 입력 폼이 보이는데
제출해도 간단한 텍스트가 출력되는 것이 전부입니다.
그런데 소스를 보면 주석화된 옵션이 존재합니다.
템플릿을 확인해 보니 config.DEBUG 가 설정되어 있으면
플래그를 출력하도록 되어 있습니다.
실제로 페이지를 보내 요청해보면
플래그는 보이지 않으니, config.DEBUG가 설정되지 않은 상태인듯 하죠.
template 인자로 메인페이지에 있었던
첫번째 페이지 주소를
삽입하니 SSTI 가 되는 것을 확인할 수 있었습니다.
이전의 템플릿을 통하여
플래그가 config 내에 저장되어 있다는 것을 알고 있으니
config를 출력하도록 해 주면 해결됩니다.
'CTF Writups' 카테고리의 다른 글
repeaaaaaat 문제풀이 (0) | 2019.04.03 |
---|---|
Sweet 문제풀이 (0) | 2019.04.03 |
Wrestler Name Generator 문제풀이 (0) | 2019.03.31 |
Wrestler Book 문제풀이 (0) | 2019.03.31 |
TimeWarp 문제풀이 (0) | 2019.03.31 |
Comments