Robert'); DROP TABLE Students;

Ezzel az xkcd-n látott nicknévvel próbáltam regisztrálni egy weblapra, hogy szándékaim szerint valami egyedi (ne ilyen m0rpheus meg hasonlók) usernevem legyen.
Az eredmény:
"Adatbazis hiba! select * from felhasznalo where lower(trim(nev))='robert')droptablestudents' and statusz not in ('T','U') limit 1 mysql:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')droptablestudents' and statusz not in ('T','U') limit 1' at line 2
2012-11-23 21:09:25 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')droptablestudents' and statusz not in ('T','U') limit 1' at line 2
************************** "

Ez mit jelent? Nincs még ilyen felhasználó?

Hozzászólások

Ja, nem kell megoldani, csak kíváncsiságból kérdezem. Csak annyit akartam beírni egy csajos postkép alá, hogy blokkolnám. :)
Mindenki lehúzta, de szerintem meg helyes.

Annyit jelent, hogy a CMS vagy akármi amivel feldolgozták a post-ban kapott stringet első ránézésre úgy tünik, hogy kivág néhány nembetűnemszám karaktert (legalábbis " "-t és ";"-t biztos) a kukába escape-elés helyett, de a '-t pont kihagyták, így szintaktikai hibás lett az SQL parancs a ' miatt, azért nem tudtál ezzel a nickkel regisztrálni (de legalább az SQL injection-t gyakorlatilag kivédték).

Hát akkor nincs más hátra, legyen a nicked inkább:
Robert'); DROP TABLE felhasznalo;

:)

(Igen, látom, hogy van egyfajta "érdekes" védelem a kódjukban SQL injection ellen, így ez nem fog működni)

Szeretném leszögezni, hogy a rendszer bármilyennemű megzavarása nem volt, van és lesz célom.
Egyszerűen csak belefutok ezekbe.
Mint pld. akkor, amikor egy szakmai oldal mobil verzióján nem volt "első-utolsó" link a cikkeket felsoroló főlapon, csak "előző-következő", a lapszámot pedig egy GET paraméterben adta át.
Beírtam mobilon, hogy 9999999999999999 (kb), aztán refresh után hasonló lap fogadott, részletes kódrészletekkel, SQL parancsokkal, táblaszerkezettel.

Valamiből az ethical hackereknek is élniük kell...
--
zsebHUP-ot használok!

,,Beírtam mobilon, hogy 9999999999999999 (kb), aztán refresh után hasonló lap fogadott, részletes kódrészletekkel, SQL parancsokkal, táblaszerkezettel."

Mázlis, engem majdnem minden weblapon rendszeresen SQL errorok fogadnak (már ahol van sql), akkor is, ha nem próbálok semmi extrát.

Am tudja valaki, hogy a sql errort miért nem fogja meg az apacs vagy másegyéb, és miért löki a gyanútlan felhasznákók arcába?

Mert nem annak a dolga.
Azért van a programozó, hogy tudja használni a try-catch blokkot... Csak sajnos sokan soha életükbe nem hallottak a biztonságos oldal gyártásának fogalmáról (lásd blogom). Betudnak okádni egy PHP fájlba, oszt csókolom...
Annó én úgy tanultam, hogy a hibákat még csak ne is kategorizáljuk (pl. adatbázis hiba) csak egyszerűen tudassuk a felhasználóval, hogy gáz van, és logoljuk ezerrel.

--
openSUSE 12.2 x86_64

Egy ' lemaradt. Ha ez is javítva, akkor a dobni kívánt tábla hiányát írná, ha nincs ilyen.
Én eltörném a kezét annak, aki ilyen hibaüzenet kiírását engedi, támogatja.

......................
Egymás segítésére még: http://pc-kozosseg.com