Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

October 27, 2007 / by Zsolt Soczó

UPDATE: SQL Injection? – NEM

http://www.cegtudor.hu/Alkategoria.aspx?varos=%C3%89rd&alkategoriaid=232&alkategorianev=kis%20%C3%A9s%20nagyker

Kimenet:
Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.FormatException: Input string was not in a correct format.

Source Error:

Line 28: mySqlCommand2.CommandText = “UPDATE kategoria SET latogatok = latogatok + 1 WHERE (kategoriaid LIKE @kategoriaid);”;
Line 29: mySqlCommand2.Parameters.Add(“@kategoriaid”, SqlDbType.Int);
Line 30: mySqlCommand2.Parameters[“@kategoriaid”].Value = Convert.ToInt32(LabelKid.Text);
Line 31: mySqlCommand2.ExecuteNonQuery();
Line 32: mySqlConnection2.Close();

Fura, mik vannak még a mai világban. Persze, mivel a paraméter int, nem egyszerű a dolog, de valószínűleg a többi rész is így van programozva.

UPDATE: baromságot beszéltem. Paraméteres a lekérdezés, teljesen jól van megcsinálva, így nem lehet injektálni. Elnézést, hogy pellengérre állítottam, szólok az ikreknek, hogy adjanak több időt aludni, addig is, nem blogolok több hülyeséget. :) Sorry.

Egy, ami nem szép, hogy debug módban van a kód, és a részletes hibaüzenetek látszanak kifelé. Ez is kiindulási alap lehet egy hacker részére.

Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

LEAVE A COMMENT

6 COMMENTS

  • gerleim October 27, 2007

    Ha jól látom az oldalon, aki fejlesztette, oktatja is.
    Amúgy meg biztos megpályáztatták, és ez volt a legolcsóbb… (A feladatot pedig mindenki teljesítette: “… Az oldalon beírt paraméterek alapján a rendszer keresést hajt végre. A kategórián belül a látoagatásokat számolja…”)

  • kaz October 29, 2007

    Szia!
    Nem szép (sőt baromi ronda, pl. megjelenítési rétegben minden), meg nem is jó a megoldás (using, like, …), de én itt nem látok lehetőséget sql code injection-ra. Elárulnád, hogy hol a lehetőség?
    Attila

  • Soczó Zsolt October 29, 2007

    Integeren keresztül én se tudok injektálni, de ha ez az oldal így van megírva, az ilyen siteokon érdemes próbálkozni a többivel is, előbb-utóbb találsz olyat, ami stringet vár paramáterül, és akkor nyertél.

  • kaz October 29, 2007

    Ezt nem teljesen értem. Ha paraméteres sql-ed van, ahol string típusú a paraméter, akkor a framework nem intézi el a string escape-elését (jobb szót nem tudok rá, bocs)? Azaz ha jól tudom, akkor így sem tudsz sql code injectiont csinálni, csak akkor, ha kézzel rakod össze az sqlt, vagy rosszul tudom?
    Másrészt abban igazad van, hogy ahol így van a site felépítve, ott még akár ez utóbbi eset is előfordulhat. Ezért is célszerű, hogyha megfelelő rétegeid vannak és a megfelelő helyeken(!) validálsz.

  • kaz October 29, 2007

    Másrészt kicsit furcsa, hogy ilyen részletes infót kiadnak egy hibáról. Ez az infó csak a fejlesztőnek, meg a crackernek hasznos, egy átlag felhasználónak bőven elég információt ad pl: az indexes hiba ablak is ( http://index.hu/kaz ).

  • Soczó Zsolt October 29, 2007

    Kaz: barom voltam, lsd update.