Hallo allerseits,
Ich habe mir lokal das folgende Skript erstellt:
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:
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:
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
Ich habe mir lokal das folgende Skript erstellt:
PHP:
<?php
$sql = "UPDATE a SET b=".$_GET["c"]."";
mysql_query($sql);
?>
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')
Code:
UPDATE a SET b=(SELECT 'c')
UPDATE a SET b=(SELECT c FROM d)
Viele Grüße,
PHRoZeNCReW
PS: Bevor jemand fragt, ja der User hat Dateirechte und magic_quotes sind ausgestellt