본문 바로가기

웹해킹/CTF

b01lers CTF warmup Writeup

반응형

b01lers CTF warmup Writeup

Description

My first flask app, I hope you like it
http://ctf.b01lers.com:5115
Author: CygnusX

 

 

 

들어가면 base64로 보이는 url 경로가 보인다. 디코딩하면 index.html이라고 나온다. 페이지 코드를 확인하고 나서, debug 페이지가 있다는 것을 알았고 접근했고 이후 또 다른 페이지로 접근해서 app.py를 얻을 수 있었다.

 

from base64 import b64decode 
import flask 
app = flask.Flask(__name__) 

@app.route('/') 
def index2(name):
    name = b64decode(name) 
    if (validate(name)): 
        return "This file is blocked!" 
    try: file = open(name, 'r').read() 
    except: return "File Not Found" 
    
    return file 

@app.route('/') 
def index(): 
    return flask.redirect('/aW5kZXguaHRtbA==') 

def validate(data): 
    if data == b'flag.txt': 
        return True 
    return False 


if __name__ == '__main__': app.run()

루트 디렉터리에서 flag.txt를 읽을 수 있었다. 다만 flag.txt는 필터링이 되고 있어서 경로조작을 통해 flag.txt에 접근했다.

 

 

 

728x90