Igraszki z MySQL INTO OUTFILE
Więc z tego co wiadomo funkcja "INTO OUTFILE" w MySQL pozwala na utworzenie pliku, nie nadpisywanie za pomocą zapytania w MySQL.
Od czego zacząć ?
Funkcja INTO OUTFILE tworzy plik o dowolnej nazwie na serwerze gdzie jest baza do której wykonujemy zapytania, oczywiście żeby wszystko działało poprawnie potrzebujesz:
1. Użytkownik mysql, musi posiadać "FILE privilegie" czyli prawo dostępu do pliku.
2. Zapytanie musi posiadać znaczki zamykające czyli ",' żeby podać ścieżke do pliku jaki ma być utworzony.
3. httpd i mysql powinny znajdować sie na tej samej maszynie, choc nie zawsze, głównie plik możesz wrzucic tam gdzie znajduje sie maszynka z baza.
4. Musisz znać pełną ścieżke dostepu na serwerze.
Przykładowe wykorzystanie funkcji:
{...Początek zapytania...} AND 1=0 UNION SELECT 1,1,1,'moj kod' INTO OUTFILE '/www/htdocs/shell.php/'/*
po czym utworzony plik shell.php bedzie posiadał źródło:
1 1 1 moj kod
Więc jak podpowiada zdrowy rozum łatwo możemy coś napsuć nie kombinująć zbytnio:
UNION SELECT CHAR(60,63,112,104,112,32,101,99,104,111,32,34,79,87,78,69,68,34,59,32,63,62),1,1,1 INTO OUFILE '/www/htdocs/shell.php'/*
CHAR() odkodowane:
I tak to wygląda :) Jeszcze jedną sprawa dosc ciekawą jest zdobycie pełnej ścieżki na serwerze, "wywalane" błędy podczas modyfikacji zapytania zdradzaja nam pełną ścieżkę, lecz nie zawsze, gdy jest inaczej co wtedy można zrobic ?
Można użyć funkcji Mysql takich samych jak np. user()
@@ba
@@datadir
@@tmpdir
@@version_compile_os
Taka ciekawostka :)
~Kacper [kacper1964@yahoo.pl]



