
취약한 Flask API와 익스플로잇 스크립트가 포함된 교육용 CVE-2026-11107 데모로, 예측 가능한 UUIDv1 식별자가 안전하지 않은 직접 객체 참조를 가능하게 하는 방식을 보여줍니다.
# idor_server.py - API with UUIDv1 user IDs
import uuid, time
from flask import Flask, request, jsonify
app = Flask(__name__)
# Generate predictable UUIDv1 based on timestamp + MAC
users = {
str(uuid.uuid1()): {"name": "Alice", "data": "private1"},
str(uuid.uuid1()): {"name": "Bob", "data": "private2"},
}
@app.route('/user/<user_id>')
def get_user(user_id):
if user_id in users:
return jsonify(users[user_id])
return "Not found", 404
if __name__ == '__main__':
app.run(port=5000)
REST API는 사용자 리소스에 대한 직접 객체 참조로 UUID 버전 1을 사용합니다. UUIDv1에는 타임스탬프 구성 요소가 포함되어 있어 매우 예측 가능합니다. 공격자는 유효한 사용자 UUID를 열거하고 개인 데이터에 액세스할 수 있습니다.
pip install flask
python idor_server.py
python exploit_idor_uuid.py