반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 프랑스어 #프랑스어배우기 #프랑스어독학 #델프인강 #시원스쿨프랑스어 #delf독학 #델프 #프랑스어기초 #프랑스어공부
- Dreamhack
- webhacking
- 동적 프로그래밍
- 서울청년문화패스
- Upstream
- 선우예권
- 예술의 전당
- 우아한테크코스
- 비동기 처리
- 자바
- 커밋메시지
- linux
- 위상 정렬
- 백엔드
- jsx
- 깃헙
- 코리안챔버오케스트라
- 깃
- 웹개발
- 네트워크 계층
- 우테코
- React
- 애플리케이션 계층
- 진입차수
- 프리코스
- 다이나믹 프로그래밍
- 알고리즘
- 트랜스포트 계층
- c
Archives
- Today
- Total
yon11b
[DH] simple-ssti 본문
반응형
simple-ssti
문제
- 전체 코드
더보기
#!/usr/bin/python3
from flask import Flask, request, render_template, render_template_string, make_response, redirect, url_for
import socket
app = Flask(__name__)
try:
FLAG = open('./flag.txt', 'r').read()
except:
FLAG = '[**FLAG**]'
app.secret_key = FLAG
@app.route('/')
def index():
return render_template('index.html')
@app.errorhandler(404)
def Error404(e):
template = '''
<div class="center">
<h1>Page Not Found.</h1>
<h3>%s</h3>
</div>
''' % (request.path)
return render_template_string(template), 404
app.run(host='0.0.0.0', port=8000)
풀이
render_template_string() 을 쓰면 {{ }} 안에 들어가는 구문을 템플릿으로 해석하기 때문에, 사용자의 입력이 들어가지 않도록 주의하여야 한다. [출처]
@app.errorhandler(404)
def Error404(e):
template = '''
<div class="center">
<h1>Page Not Found.</h1>
<h3>%s</h3>
</div>
''' % **(request.path)**
return render_template_string(template), 404
path에 템플릿 취약점이 발생한다는 것을 발견했으므로 {{7*7}}을 하여서 잘 작동이 되는지 확인해 보겠다.
http://host3.dreamhack.games:13839/{{7*7}}
연산이 되었으므로 취약점이 발생했음을 확인했다. 이제 여기에서 flag.txt 파일을 열어보자.
flask에서는 config라는 것이 있다.
config 객체는 "현재 구성 객체 (flask.config)"를 나타내는 Flask 템플릿 전역입니다. 응용 프로그램의 모든 구성 값을 포함하는 사전과 유사한 객체입니다. 대부분의 경우 여기에는 데이터베이스 연결 문자열, 써드 파티 서비스에 대한 신임 정보, SECRET_KEY 등과 같은 민감한 값이 포함됩니다. 이러한 구성 항목을 보는 것은 {{config.items ()}} 페이로드를 삽입하는 것만 큼 쉽습니다 .
란다.
app.secret_key = FLAG
이므로 config를 확인해보면 그 안에 secret_key에 flag가 있을 것으로 예상할 수 있다.
익스
http://host3.dreamhack.games:13839/{{config}}
728x90
'보안 > WRITE_UP' 카테고리의 다른 글
[DH] Mango (0) | 2022.07.28 |
---|---|
[DH] csrf-2 (0) | 2022.05.19 |
[webhacking.kr] old-25 (0) | 2022.05.19 |
[webhacking.kr] g00gle2 (0) | 2022.05.19 |
[webhacking.kr] g00gle1 (1) | 2022.05.19 |