Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Webmaster-Security Fragen zur richtigen Serverkonfiguration oder Absicherung dynamischer Scripte gehören hier hinein.

[SQLi] INTO OUTFILE in UPDATE query

Diskussion: [SQLi] INTO OUTFILE in UPDATE query im Forum Webmaster-Security, in der Kategorie Security Area; Anzeige Hallo allerseits, Ich habe mir lokal das folgende Skript erstellt: PHP-Code: <?php $sql  =  "UPDATE a SET b=" . $_GET [ "c" ...

Antwort
Alt 05.02.12, 02:04   #1 (permalink)
 
Registriert seit: 22.06.06
PHRoZeNCReW Leistung: Facit NTK
Likes: 0
Standard [SQLi] INTO OUTFILE in UPDATE query

Anzeige

Hallo allerseits,
Ich habe mir lokal das folgende Skript erstellt:

PHP-Code:
<?php
$sql 
"UPDATE a SET b=".$_GET["c"]."";
mysql_query($sql);
?>
Man sieht ja recht schnell, dass dieses Skript sehr anfällig bezüglich SQL-Injections ist. Mich würde allerdings eine Sache sehr interessieren: Meiner Meinung nach ist die gefährlichste aller SQL-Injection Arten jene, die INTO OUTFILE exploitet, sodass der Angreifer in der Lage ist Schaddateien (z.B. ein Shellskript) zu erstellen.

Mir ist diese Attacke jedoch nur bei SELECT queries bekannt, weswegen ich fragen wollte ob dieser UPDATE query (oder generell UPDATE queries) immun gegen INTO OUTFILE ist. Ich habe zunächst folgende Überlegung gemacht:
Code:
UPDATE a SET b=(SELECT 'x' INTO OUTFILE 'pfad/zu/datei.txt')
was jedoch von MySQL mit einem Syntaxerror nicht angenommen wurde. Ich kenne mich mit der MySQL Syntax nicht sehr gut aus und kann der Onlinedokumentation auch nicht wirklich entnehmen warum es nicht funktioniert. Denn eigentlich hat MySQL ja keine Probleme mit eingebetteten Subqueries wie zum Beispiel:
Code:
UPDATE a SET b=(SELECT 'c')
UPDATE a SET b=(SELECT c FROM d)
Deshalb würde ich gerne wissen was ihr denkt. Ist die Suchabfrage in diesem Fall immun gegen die INTO OUTFILE Attacke?

Viele Grüße,
PHRoZeNCReW

PS: Bevor jemand fragt, ja der User hat Dateirechte und magic_quotes sind ausgestellt
PHRoZeNCReW ist offline   Mit Zitat antworten
Alt 05.02.12, 21:55   #2 (permalink)
Themenstarter
 
Registriert seit: 22.06.06
PHRoZeNCReW Leistung: Facit NTK
Likes: 0
Standard

Hmmm, vielleicht ist die Frage einfach zu speziell
PHRoZeNCReW ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 06.02.12, 00:28   #3 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 211
Standard

ich könnte mir vorstellen, dass der query optimizer ein problem damit hat, da die subquery vermutlich nichts zurück gibt ... und das auch vor der ausführung bekannt ist ...
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 06.02.12, 15:22   #4 (permalink)
Themenstarter
 
Registriert seit: 22.06.06
PHRoZeNCReW Leistung: Facit NTK
Likes: 0
Standard

Ja, solche Überlegungen habe ich auch schon gemacht. Es ist nur schade, dass man bei solchen Sicherheitsangelegenheiten keine gute, ausführliche und vor allen Dingen eindeutige Dokumenation bezüglich Syntax und Semantik hat.

Gewisse Fragestellungen werden einfach nicht von diesen Pseudogrammatiken auf der Website von MySQL beantwortet.
PHRoZeNCReW ist offline   Mit Zitat antworten
Alt 06.02.12, 19:28   #5 (permalink)
Senior Member
 
Benutzerbild von t3rr0r.bYt3
 
Registriert seit: 07.01.03
t3rr0r.bYt3 Leistung: Z3
Likes: 19
Standard

Einmal nach "mysql into outfile" googlen liefert folgende Seite als ersten Treffer: MySQL :: MySQL 5.0 Reference Manual :: 12.2.8.1 SELECT ... INTO Syntax
Der letzte Satz lautet: "An INTO clause should not be used in a nested SELECT because such a SELECT must return its result to the outer context."
Darüber hinaus erklärt einem der Absatz darüber, wie man mit INTO Variablen belegt.
t3rr0r.bYt3 ist offline   Mit Zitat antworten
Alt 06.02.12, 20:21   #6 (permalink)
Themenstarter
 
Registriert seit: 22.06.06
PHRoZeNCReW Leistung: Facit NTK
Likes: 0
Standard

Hallo t3rr0r.bYt3,
Vielen Dank für deine Antwort. Ich habe den Satz eher so verstanden, dass es nicht SINVOLL ist INTO OUTFILE in subqueries zu nutzen (aus genannten Gründen). Ich konnte dem Satz nicht wirklich entnehmen, dass es einen Syntaxerror verursacht.

Viele Grüße,
PHRoZENCReW
PHRoZeNCReW ist offline   Mit Zitat antworten
Alt 21.02.12, 17:57   #7 (permalink)
 
Registriert seit: 20.08.11
Stiepen Leistung: Facit NTK
Likes: 0
Standard

Ich denke mal, dass 0; SELECT x INTO OUTFILE 'datei.txt' funktionieren müsste. damit sähe die abfrage ja so aus:

Code:
UPDATE a SET b=0; SELECT x INTO OUTFILE 'datei.txt'
Hab ich jetzt aber nicht überprüft.
__________________
Bei Risiken und Nebenwirkungen lesen sie den Beitrag und fragen sie den Autor
Stiepen ist offline   Mit Zitat antworten
Alt 29.02.12, 17:49   #8 (permalink)
 
Benutzerbild von b4ck
 
Registriert seit: 13.02.06
b4ck Leistung: Z3
Likes: 1
Standard

Zitat:
Zitat von Stiepen Beitrag anzeigen
Ich denke mal, dass 0; SELECT x INTO OUTFILE 'datei.txt' funktionieren müsste. damit sähe die abfrage ja so aus:

Code:
UPDATE a SET b=0; SELECT x INTO OUTFILE 'datei.txt'
Hab ich jetzt aber nicht überprüft.

das funktioniert zwar als reines SQL aber nicht via. PHP da PHP maximal 1 SQL statement ausführt d.h alles hinter ";" wird nicht ausgeführt.
b4ck ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » Webmaster-Security » [SQLi] INTO OUTFILE in UPDATE query
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit SQL-Query Values inkrementieren da_fighter Code Kitchen 2 12.09.10 22:12
PHP Problem mit SQLite-query sw33tlull4by (Web-) Design und webbasierte Sprachen 8 07.05.10 15:50
Langsammen Query überarbeiten easteregg (Web-) Design und webbasierte Sprachen 4 16.06.09 14:31
SQL: Query gesucht boehmi Code Kitchen 5 05.05.09 20:56
INTO OUTFILE ins Webserver-Verzeichnis? Xalon (Web-) Design und webbasierte Sprachen 5 10.12.06 15:26


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61