# Favorite JWT (cookie arena) tôi truy cập vào thư mục flag nhưng không có quyền ![image](https://hackmd.io/_uploads/ByJE1ZsBp.png) và ta phải lấy được xác thực của admin và chúng ta cần khai thác source code bài cho ``` #!/usr/bin/env python3 import jwt import os from flask import Flask, request, Response, redirect from flask_limiter import Limiter from flask_limiter.util import get_remote_address app = Flask(__name__) limiter = Limiter( app=app, key_func=get_remote_address, default_limits=["50000 per hour"], storage_uri="memory://", ) secret = os.urandom(32) def get_new_cookie(): return jwt.encode({"user": "normal"}, secret, algorithm="HS256") def check_cookie(cookie): return jwt.decode(cookie, options={"verify_signature": False}, algorithms="HS256").get("user", "") == "admin" @app.route('/') @limiter.limit("5/second") def index(): return Response(open(__file__).read(), mimetype="text/plain") @app.route('/flag') @limiter.limit("5/second") def flag_endpoint(): if "token" not in request.cookies: ret = redirect("/flag") ret.set_cookie("token", get_new_cookie()) return ret if check_cookie(request.cookies.get("token")): return open("/flag.txt").read() else: return "Only admins can view the flag!" if __name__ == "__main__": app.run('0.0.0.0', 1337) 1 ``` ![image](https://hackmd.io/_uploads/HkLGe-sBp.png) tôi vào https://jwt.io/ để sửa cookie ![image](https://hackmd.io/_uploads/B1sSxbsSa.png) tôi sửa user thành admin ![image](https://hackmd.io/_uploads/SkcebZiHa.png) sau đó tôi sửa lại cookie và được flag ![image](https://hackmd.io/_uploads/S1JNZ-iSp.png)