2016-04-10 9 views
0

Ich führe einen Stift Test auf einem Webserver als eine der Aufgaben in einer Prüfung, und nach dem Ausnutzen einer unbeschränkten Datei-Upload-Schwachstelle (https://www.owasp.org/index.php/Unrestricted_File_Upload), versuche ich auf einen bestimmten Ordner auf zugreifen der Web-Server, und ich diese Störung erhalte:open_basedir Einschränkung funktioniert nicht wie erwartet

Warning: scandir(): open_basedir restriction in effect. File(C:\inetpub\sitesdata\mysite.com\SESSIONS\USERS) is not within the allowed path(s): (C:\inetpub\vhosts\mysite.com\subdomains\me\httpdocs;C:\inetpub\sitesdata\mysite.com\SESSIONS\USERS) in C:\inetpub\vhosts\mysite.com\subdomains\me\httpdocs\ticketAttachments\4b3519fbe17e82993e76927e5f253e33\hack.php 

Bitte beachten Sie, dass der Weg tatsächlich in den erlaubten Pfaden ist (ich denke, dass der Sinn dieser Aufgabe in der Prüfung, war es, alle Benutzersitzungen zu stehlen) .

Ich habe keinen Zugriff auf den Server, also kann ich keine Einstellungen auf dem Server ändern, ich muss nur alle sess_ * Dateien, die wahrscheinlich in diesem C:\inetpub\sitesdata\mysite.com\SESSIONS\USERS Ordner gespeichert sind.

Dies sind die Inhalte meiner hack.php Datei:

<pre style="text-align:left"> 
    <?php 
     $files = scandir($_GET['path']); 
     foreach ($files as $file) { 
      echo $file; 
      echo "\n"; 
     } 
    ?> 
</pre> 

ich versucht habe, den anderen Weg in den erlaubten Pfade Zugriff auf und es ist das gleiche. Aber die seltsame Sache ist, dass ich den Inhalt der C:\inetpub\vhosts\mysite.com\subdomains\me\httpdocs\ticketAttachments lesen kann, aber nicht die C:\inetpub\vhosts\mysite.com\subdomains\me\httpdocs, die tatsächlich in den zulässigen Pfaden ist.

Mache ich hier etwas falsch?

+0

FWIW, Dinge wie 'function ($ _ GET [" foo "]);' sind sehr unsicher und negieren normalerweise jede mögliche Sicherheit. Nehmen Sie den Wert zur Variablen, bereinigen Sie ihn und übergeben Sie den bereinigten Wert und beginnen Sie dann erneut, über die Sicherheit zu sprechen. – Smar

+1

@Smar Ich stimme völlig zu, wenn das ein Teil des Codes war. Aber diese Datei ist ein Exploit, sie soll nicht sicher sein. Ich habe es dort als böswilligen Versuch platziert, Zugang zu der Website zu bekommen, es soll unsicher und ausnutzbar sein. –

+0

Ich habe Windows-Tag hinzugefügt, wie ich dies für PHP unter Windows ist, und oft gibt es Unterschiede zwischen Linux und Windows, wenn ich über PHP spreche, ich wäre nicht überrascht, wenn basedir einer davon wäre. Fühlen Sie sich frei, das Tag zu löschen, wenn Sie denken, dass es nicht da sein sollte. Es gibt auch Dateirechte von Windows, können diese auch beeinflussen? – Smar

Antwort

0

Es ist ein einfaches Tippfehler-Problem.

You want to access:   C:\inetpub\sitesdata\mysite.com\SESSIONS\USERS 
The allowed path contains: C:\inetpub\sitesdata\mysites.com\SESSIONS\USERS 

Beachten Sie das fehlende "s"?

+0

Oh Entschuldigung, ich habe diesen Tippfehler gemacht, während ich die Frage hier eingegeben habe, das werde ich in der Frage korrigieren. –

+0

@NenadPavicevic Wirklich? Es sieht aus wie eine kopierte und eingefügte Fehlermeldung.Es würde mich überraschen, wenn du alles eingegeben hättest. – Chris

+0

Nein, ich habe den Site-Namen geändert. Entschuldigen Sie das Missverständnis. –