Autor Zpráva
stepanka
Profil *
Ahoj,

mám na webu porovnávání produktů a přemýšlím a pořád zkouším, jestli je můj SQL dotaz zranitelný pomocí SQL Injection. Žádné ošetření vstupu tam není, ale přesto se mi to nepodařilo nějak prolomit a vložit tam něco, co tam nepatří.

Stránka a dotaz vypadá takto:

URL: http://www.stranka.cz/porovnani.html?id=32,31,24,19

if (isset($g_id) AND $g_id != '') {
	$_SESSION['porovnani']=explode(",", $g_id);
}

$dotaz = "  
SELECT  
   p.id AS id_produkt, 
   m.nazev_cz AS produkt, 
   f.file AS img, 
   sp.nazev_cz AS polozka,  
   sh.nazev_cz AS hodnota 
      FROM ".TBL_PREFIX."produkty p
      LEFT JOIN ".TBL_PREFIX."produkty_foto f ON f.id_produkt=p.id  AND f.razeni=0
      JOIN ".TBL_PREFIX."produkty_matky m ON p.id_matka=m.id_matka 
      LEFT JOIN ".TBL_PREFIX."sablony_obsah so ON p.id=so.id_produkt 
      LEFT JOIN ".TBL_PREFIX."sablony_hodnoty sh ON so.id_hodnota=sh.id_hodnota 
      LEFT JOIN ".TBL_PREFIX."sablony_polozky sp ON sh.id_polozka=sp.id_polozka 
      WHERE p.id IN (".implode(", ", $_SESSION['porovnani']).")
      ORDER BY find_in_set(p.id,'$_GET[id]')
";


Myslíte, že je možné ten dotaz přes URL nějak modifikovat a nabourat ho?

Děkuju moc.
Kajman_
Profil *
porovnani.html?id=32,31)or 24 in(24,19
stepanka
Profil *
Kajman:

Děkuju za reakci, tohle mě při testování nenapadlo. Je to fajn, vypíše mi to takhle všechny produkty z databáze. Jen přemýšlím, jak by tohle mohl útočník zneužít.. Asi nijak, nejspíš by touto modifikací URL nic zajímavého nezískal..
Kajman_
Profil *
Zatížení serveru?
stepanka
Profil *
Kajman:

Se zatížením serveru máš pravdu... Taky jsem si pohrála s tím Tvým řetězcem v URL a když zadám

porovnani.html?id=31) union select eshop1_admin.heslo as produkt, eshop1_admin.heslo as id_produkt, 0, 0, 0 FROM eshop1_admin WHERE id = 1 /*


je to taky velice zajímavé. Můžu si zobrazit všechny jména a zakódovaná hesla administrátorů..
stepanka
Profil *
Prosím, o jaký typ útoku se v tom posledním případě jedná? Je to SQL Injection, protože napadám databázi, nebo je to CSRF, protože útok se provádí přes hodnoty GET v URL?

Děkuju.
TomášK
Profil
SQL injection. Při CSRF podstrkuješ někomu odkaz, to se zde neděje.
stepanka
Profil *
TomášK:

Děkuju za reakci.

Takže když pošlu administrátorovi, který je přihlášený do systému, nějaký odkaz, který bude obsahovat JS funkci pro odeslání jeho cookie na můj server, on na něj klikne, já jeho cookie obdržím a přihlásím se za něj do administrace, tak se jedná o CSRF útok?
Nox
Profil
stepanka:
To je session stealing či cosi

CSRF znamená Cross-Site Request Forgery, tzn. jedná se o zaslání dat tvému skriptu z formuláře mimo tvůj web, třeba podstrčený jinému uživateli v nějaké stránce
Obrana viz. php.vrana.cz
stepanka
Profil *
Nox:

Aha, rozumím, děkuju moc.
Chamurappi
Profil
Reaguji na stepanku:
nějaký odkaz, který bude obsahovat JS funkci pro odeslání jeho cookie na můj server
To bude XSS.
stepanka
Profil *
Chamurappi:

Noo, nevím... vzhledem k tomu, že se nejedná o zakomponování Javascriptu do stránky, ale o zaslání odkazu, tak bych spíš taky hlasovala pro Session hijacking, než pro XSS.
radas
Profil *
zdravím,
jen tak spiš pro zajimavost ja jsem si na ošetřeni vstupu a vyzkoušeni jak se web bude chovat při různých utocich "ochočil" (a to doslova protože dlouho jsem s tim programem bojival)

Acunetix Web Vulnerability Scanner

jen ve free verzi...zajimalo by mě jestli to někdo zna, používa a jaký je na to jeho nazor...
stepanka
Profil *
radas:

Ano, pokus o vyzkoušení jsem vyvinula už asi 3x, první tak před dvěma měsíci, poslední cca před měsícem. Ještě ani jednou mi nedošel jejich e-mail, ve kterém měli poslat přístup, ať to můžu stáhnout..
radas
Profil *
stepanka:
ja jsem ho stahl na studna.cz ale licence: shareware

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: