XPATH Injection - Login Bypass
Nun möchte euch eine Art der XPATH Injection vorstellen.
Ich kenne nicht alle Arten , doch diese ist mir bekannt
Ich weiß nicht ob ihr euch schonmal über XPATH (xml) informiert habt
Vorab ;
xml dateien sind zumeist vom Administrator höchst wertvolle Dokumente , die zB den Login
richten können.
Ich zeige euch den Teil eines xml Login Dokumentes und werde euch den Vorgang
mit XPATH Injection erklären , sodass ihr denn Login über einen Bypass schafft
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<users>
<user>
<id> 1 </id>
<username> admin </username>
<password> test123 </password>
</user>
<user>
<id> 2 </id>
<username> user </username>
<password> pass </password>
</user>
</users>
Der Coder hat den Path also den so genannten XPATH genau in seinem Script (der unten steht) angegeben.
Code:
String username = req.getParameter("username");
String password = req.getParameter("password");
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
File file = new File("/usr/webappdata/users.xml");
InputSource src = new InputSource(new FileInputStream(file));
XPathExpression expr = xpath.compile("//users[username/text()=' " +
username + " ' and password/text()=' "+ password +" ']/id/text()");
Der Code ließt das xml Dokument und sucht nach den Daten die für den Login aufeinander stimmen.
Wir nehmen als login daten username=admin password=test123
Die Txt Zeilen Antwort wird also so lauten
[CODE] //users[username/text()='admin' and password/text()='test123']/id/ text()
Und hier werden wir die XPATH Injection mit Bypass beginnen
Da wir die Werte so anpassen konnten ohne das die Abfrage im ersten Login Dokument abgegeben werden ,
können wir diese mit ' or '1='1 oder etwas anderem (bypass) wie realusername' OR 1=1'-- / admin'-
beeinflussen und uns erfolgreich einloggen.
So können wir uns auch ohne das richtige Passwort einen Weg zum Administration Panel überbrücken.
###
visit www.acceptthefuture.wordpress.com
visit 1nj3ct-Crew - und3rcore
###
';alert(trisn)