
एक संवेदनशील Flask/lxml पार्सर के साथ SVG अपलोड के माध्यम से XXE का प्रदर्शन करता है, साथ ही मनमानी फ़ाइल पढ़ने, SSRF, और सेवा-अस्वीकार (denial-of-service) परीक्षण हेतु एक एक्सप्लॉइट स्क्रिप्ट भी शामिल है।
# xxe_upload_server.py - Uploads SVG, renders with lxml resolving entities
from flask import Flask, request
from lxml import etree
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload_svg():
svg_data = request.data
# Vulnerable: parses with entity resolution enabled
parser = etree.XMLParser(resolve_entities=True, no_network=False)
doc = etree.fromstring(svg_data, parser)
# Extract something from SVG
return etree.tostring(doc)
if __name__ == '__main__':
app.run(port=5000)
एक वेब एप्लिकेशन SVG इमेज अपलोड स्वीकार करता है और उन्हें एक कमजोर XML पार्सर से पार्स करता है जिसमें बाहरी एंटिटी रिज़ॉल्यूशन सक्षम है। एक हमलावर स्थानीय फ़ाइलें पढ़ने, SSRF करने, या सेवा से वंचित (denial of service) करने के लिए एक XXE पेलोड एम्बेड कर सकता है।
resolve_entities=True और नेटवर्क एक्सेस के साथ कॉन्फ़िगर किया गया है, जो बाहरी एंटिटीज़ के विस्तार की अनुमति देता है।pip install flask lxml
python xxe_upload_server.py
python exploit_xxe_svg.py