ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Clear] b01lers CTF 2023 warmup writeup
    CTF/b01lers CTF 2023 2023. 3. 20. 16:52

    웹 카테고리의 warmup 문제이다.

    주어진 URL로 접근하면 base64인코딩 된 값으로 추정되는 경로값이 있고, 소스코드에 debug.html 이 언급되어있다.

    debug.html을 base64 인코딩 처리하여 접근해보았다.

     app.py를 통해 rendering 테스팅을 한다고 하여 app.py 도 base64처리하여 접근해보았다.

    서버의 소스코드가 노출되었다.

    from base64 import b64decode
    import flask
    
    app = flask.Flask(__name__)
    
    @app.route('/<name>')
    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): ##### ................................................ (1)
        if data == b'flag.txt':
            return True
        return False
    
    
    if __name__ == '__main__':
        app.run()

    플래그 파일을 읽어야 하지만, flag.txt 값은 (1)에 의해 필터링되어있다.

    이를 우회하기 위해 경로 정보를 추가하여 ./flag.txt 로 접근을 시도해보았다.

    우회에 성공하여 플래그를 획득 할 수 있었다.

    FLAG = bctf{h4d_fun_w1th_my_l4st_m1nut3_w4rmuP????!}

    반응형

    'CTF > b01lers CTF 2023' 카테고리의 다른 글

    [Clear] b01ler CTF 2023 fishy-motd writeup  (0) 2023.03.20

    댓글

Designed by Tistory.