simple-ssti



소스코드 분석

  • 주목해야 할 포인트는 Error404(e) 함수 부분입니다. 서버에서 404 응답이 오면 이 함수가 호출되는데, 이 때 접근한 경로(request.path)는 template 변수의 %s 부분에 들어가고 render_template_string() 함수에 의해 템플릿 구문이 해석됩니다.
  • 대체로 Flask의 경우 app.n에 저장되는 대부분의 정보들이 config 클래스에 포함되기 때문에 이 값을 입력하면 플래그 확인 가능합니다.

  • 플래그 가챠! 뽑기 성공! ({{config}})

🐛.. 🐛.. 🐛..


REFERENCE

  1. https://www.igloo.co.kr/security-information/%EC%9B%B9-%ED%85%9C%ED%94%8C%EB%A6%BF-%EC%97%94%EC%A7%84-%EA%B8%B0%EB%B0%98%EC%9D%98-ssti-%EC%B7%A8%EC%95%BD%EC%A0%90-%EB%B6%84%EC%84%9D/
  2. https://scribblinganything.tistory.com/768
  3. https://flask.palletsprojects.com/en/stable/api/#flask.Request.path