{'context_id': 377, 'vulnerable': True, 'processing': False, 'request': {'url': 'https://lopez.com/tags/bloglogin.jsp', 'method': 'PATCH', 'headers': {'HOST': '127.0.0.1:5000', 'USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0', 'ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'ACCEPT_LANGUAGE': 'en-US,en;q=0.5', 'ACCEPT_ENCODING': 'gzip, deflate, br, zstd', 'ORIGIN': 'http://127.0.0.1:5000', 'CONNECTION': 'keep-alive', 'REFERER': 'http://127.0.0.1:5000/idor/login', 'COOKIE': 'csrftoken=7GgBqVlBL6WuGdfu3e6EBXep8N5vFiVm; grafana_session=54c841e9cb2f4956a7c791efd284d120; grafana_session_expiry=1735995560; user_id=2; session_token=b3c634c91e1711c794704a031918a34b', 'UPGRADE_INSECURE_REQUESTS': '1', 'SEC_FETCH_DEST': 'document', 'SEC_FETCH_MODE': 'navigate', 'SEC_FETCH_SITE': 'same-origin', 'SEC_FETCH_USER': '?1', 'PRIORITY': 'u=0, i', 'Content-Type': 'application/json', 'User-Agent': 'Mozilla/5.0 (Windows 95; mag-IN; rv:1.9.1.20) Gecko/6791-02-14 21:10:17.404541 Firefox/3.6.11'}, 'body': b'csrfmiddlewaretoken=fe9f7b23-bcaa-44c4-912f-237328c9190e&newpass1=sDeffnda&newpass2=IWLyp3T9'}, 'control_flow': {0: "api_key = request.cookies.get('api_key')", 1: 'if API_KEY is None or api_key == API_KEY:', 2: 'return f(*args, **kwargs)', 3: 'pass', 4: "if request.method == 'GET':", 5: 'return idor_login_api(request, app)', 6: 'form = request.form', 7: "username = form.get('username')", 8: "password = form.get('password')", 9: "password = hashlib.md5(password.encode('utf-8')).hexdigest()", 10: 'db_result = app.db_helper.execute_read(', 11: 'f"SELECT * FROM users WHERE username=:username AND password=:password",', 12: "{ 'username': username, 'password': password }", 13: 'db_result = app.db_helper.execute_read(', 14: 'con = None', 15: 'try:', 16: 'con = self._get_db_connection()', 17: 'return sqlite3.connect(self.DB_FILE_PATH)', 18: 'cur = con.cursor()', 19: 'cur.execute(sql, params)', 20: 'result = cur.fetchall()', 21: 'return result', 22: 'if con is not None:', 23: 'con.close()', 24: 'return result', 25: 'if len(db_result) == 0:', 26: "return render_template('idor/idor_login.html', error=True)", 27: '', 28: '<div class="block">', 29: '<pre>', 30: 'Password: robso1980', 31: '</div>', 32: '', 33: '<div class="block">', 34: '', 35: '<div class="block">', 36: '', 37: '<form action="/idor/login" method="post" style="max-width: 300px;">', 38: '<meta name="viewport" content="width=device-width, initial-scale=1.0">', 39: '<link rel="stylesheet" href="{{ url_for(\'static\', filename=\'assets/bulma.min.css\') }}">', 40: '<title>Vuln Python App</title>', 41: '<body>', 42: '{% include "./components/navbar.html" %}', 43: '<section class="section">', 44: '{% block content %}{% endblock %}', 45: '</div>', 46: '</section>', 47: '', 48: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 49: '', 50: '<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="False" data-target="navbarBasicExample">', 51: '<span aria-hidden="True"></span>', 52: '<span aria-hidden="True"></span>', 53: '</div> -->', 54: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 55: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 56: '', 57: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 58: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 59: '<div id="navbarBasicExample" class="navbar-menu">', 60: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 61: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 62: '<div class="navbar-start">', 63: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 64: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 65: '<a class="navbar-item" href="{{ url_for(\'home\') }}">', 66: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 67: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 68: 'Home', 69: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 70: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 71: '</a>', 72: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 73: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 74: '', 75: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 76: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 77: '<div class="navbar-item has-dropdown is-hoverable">', 78: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 79: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 80: '<a class="navbar-link">', 81: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 82: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 83: 'SQL Injection', 84: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 85: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 86: '</a>', 87: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 88: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 89: '', 90: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 91: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 92: '<div class="navbar-dropdown">', 93: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 94: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 95: '<a class="navbar-item" href="{{ url_for(\'sql_injection_login\') }}">', 96: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 97: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 98: 'Login', 99: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 100: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 101: '</a>', 102: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 103: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 104: '<a class="navbar-item" href="{{ url_for(\'sql_injection_search\') }}?q=">', 105: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 106: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 107: 'Search', 108: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 109: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 110: '</a>', 111: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 112: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 113: '</div>', 114: '<script src="{{ url_for(\'static\', filename=\'assets/global.js\') }}"></script>', 115: '<script src="{{ url_for(\'static\', filename=\'assets/axios.min.js\') }}"></script>', 116: '<script>', 117: "// var googleCaptchaKey = '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI';", 118: '<div class="control">', 119: '<input class="input" name="username" type="text" placeholder="myuser" required>', 120: '</div>', 121: '<div class="field">', 122: '<div class="control">', 123: "// var googleCatpchaSecretKey = '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe';", 124: '', 125: "var googleCaptchaKey = '{{ GOOGLE_RECAPTCHA_SITE_KEY }}';", 126: "var googleCatpchaSecretKey = '{{ GOOGLE_RECAPTCHA_SECRET_KEY }}';", 127: '', 128: '</script>', 129: '', 130: '{% block js %}{% endblock %}', 131: '</body>', 132: '</html>', 133: 'None', 134: 'None', 135: 'None', 136: 'None', 137: 'None', 138: '</html>'}, 'response': {'status_code': '204', 'headers': {'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '3984'}}}