Sql injection (mam skrypty php serwera)

939328

Użytkownik
Dołączył
Grudzień 18, 2011
Posty
13
Witam wszystkich ostatnio coś było z pewną stroną i wchodząc w pliki typu login.php register.php wyświetlało ich zawartość mam te skrypty i teraz moje pytanie odnośnie tego skryptu :

PHP:
$login= $database->real_escape_string(trim($_POST['login']));
Wszystkie zmienne są zabezpieczone w ten sposób real_escape_string, trim czy jest jakiś sposób na ominięcie tych zabezpieczeń ? i do czego one dokładnie służą ?
Dodam że na google coś szukałem i kiedy wpisze w login i hasło : ' OR 1=1 /* to wyskakuje błąd łączenia sie z bazą mysql, a jak wpisze normalne dane to sie loguje nie wam sam juz o co w tym chodzi
 
Ostatnia edycja:

nowy_me

Użytkownik
Dołączył
Luty 7, 2007
Posty
451
Wyświetlało zawartość plików bo serwer mógł być źle skonfigurowany, prawdopodobnie połączenie do bazy też jest dlatego nie łączy się z bazą.

Funkcja która tu jest służy właśnie do odpowiedniego filtrowania danych do bazy, nie da się jej obejść.
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
A nie masz pliku PHP, który odpowiada za łączenie z bazą danych? Najczęstsza nazwa to config.php.
 

939328

Użytkownik
Dołączył
Grudzień 18, 2011
Posty
13
mam plik config.php z strony i jego forum kod :

PHP:
<?php
$host = "111";
$nazwa= "1111";
$haslo = "111"; 
$conn = mysql_connect($host,$nazwa,$haslo);
if(!$conn)
{
echo "Błąd połączenia z serwerem:".mysql_error();
exit;
}
$wybierz = mysql_select_db('baza'); 
if(!$wybierz)
{
echo "Bład wyboru bazy danych" .mysql_error();
}
?>

to config
 
Ostatnia edycja:

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
mam plik config.php z strony i jego forum kod:
PHP:
$host = "111";
$nazwa= "1111";
$haslo = "111";
W tych zmiennych powinny być dane autoryzacyjne do bazy danych (Ty tam wpisałeś te jedynki czy były?). Daje Ci to ogromne możliwości, nawet poznania hasła administratora (gdy złamiesz hash).
 

michal31337

Były Moderator
Dołączył
Październik 16, 2011
Posty
329
real_escape_string nie chroni przez SQL injection, radzę używać PDO albo mysqli, na dzień dzisiejszy to jest standard w PHP.
 

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
michal31337 - a) dlaczego niby mysql_real_escape_string (zakładam, że o tym piszesz) nie chroni przed SQL Injection (pomijając jakieś śmieszne kodowania znaków);
b) w kawałku kodu jest jedynie wywołanie funkcji w klasie, nie widać jaka faktycznie funkcja odpowiada za filtrowanie.
 
Do góry Bottom