SzámítógépekProgramozás

Mi az injekció SQL?

A helyszínek száma és az oldalak az interneten folyamatosan növekszik. Tett a fejlesztés mindazoknak, aki tud. És a kezdő webfejlesztők gyakran nem biztonságos és a régi kódot. És létrehoz egy csomó kiskapuk a bűnözők és a hackerek. Mint ők. Az egyik klasszikus réseket - SQL-injection.

Egy kis elmélet

Sokan tudják, hogy a legtöbb oldalak és szolgáltatások a hálózat segítségével az SQL adatbázis tárolására. Ez egy strukturált lekérdező nyelv , amely lehetővé teszi, hogy ellenőrizzék és kezelésére adattárolást. Sok különböző változatai az adatbázis-kezelő rendszer adatbázisa - az Oracle, MySQL, Postgre. Függetlenül attól, hogy a nevét és típusát, akkor használja ugyanazt a lekérdezési adatokat. Itt van, hogy fekszik a potenciális biztonsági rést. Ha a fejlesztő nem kezelte megfelelően és biztonságosan kérni, a támadó kihasználhatja ezt, és speciális taktika, hogy hozzáférjen az adatbázishoz, majd - és az egész terület kezelését.

Ennek elkerülése érdekében, meg kell megfelelően optimalizálja a kódot, és szorosan figyelemmel kíséri a mód, ahogy egy kérés feldolgozása folyamatban van.

Ellenőrizze az SQL-injection

Ahhoz, hogy meghatározzák a biztonsági rés a hálózat tömege kész automatizált szoftver rendszerek. De lehetséges, hogy végezzen egyszerű ellenőrzés kézzel. Ehhez megy az egyik a vizsgálati helyek és a címsorba, hogy megpróbálja okoz adatbázishiba. Például egy script a helyszínen nem tudja kezelni a kérést, és nem vágja le.

Például van nekiy_sayt / index.php? Id = 25

A legegyszerűbb módja -, hogy 25 után az idézet, és küldje el a kérelmet. Ha nem történt hiba, akár a helyszínen és a szűrő minden kérést helyesen kezelik, vagy le van tiltva a beállításokat kibocsátásuk. Ha egy oldal újratöltése a problémákat, akkor a sebezhetőség az SQL-befecskendezés.

Miután rájött, akkor megpróbál megszabadulni tőle.

Megvalósítása ezt a biztonsági rést kell tudni, hogy egy kicsit a SQL-lekérdezések csapatok. Egyikük - UNION. A program több lekérdezés eredménye egy. Így tudjuk számítani a mezők száma a táblázatban. Példa első lekérdezés:

  • nekiy_sayt / index.php? id = 25 UNION SELECT 1.

A legtöbb esetben ez a rekord kell hibát generál. Ez azt jelenti, hogy a mezők száma nem egyenlő 1 Így választotta a lehetőségek 1 vagy ennél nagyobb, akkor lehet megállapítani a pontos szám:

  • nekiy_sayt / index.php? id = 25 UNION SELECT 1,2,3,4,5,6.

Vagyis, ha a hiba nem jelenik meg többé, az azt jelenti, hogy a mezők száma kitalálni.

Van is egy alternatív megoldás erre a problémára. Például, ha egy számos területen - 30, 60 vagy 100 Ez a parancs GROUP BY. Ez csoportok eredményeit lekérdezés semmilyen alapon, például id:

  • nekiy_sayt / index.php? id = 25 GROUP BY 5.

Ha a hiba nem érkezett, akkor a mezők több mint 5. Így helyettesítő eszközök egy meglehetősen széles tartományban, akkor lehet számítani, hogy sokan valóban.

Ez a példa az SQL-injection - kezdőknek, akik szeretnék kipróbálni magukat a vizsgálat annak helyén. Fontos megjegyezni, hogy az illetéktelen hozzáférést a másik elérhető cikket a Btk.

A főbb típusai a befecskendezés

Végrehajtása biztonsági rés az SQL-injekció több kiviteli alakokban. Következő a legnépszerűbb módszerek:

  • Az UNION a lekérdezés SQL injekció formájában. Egy egyszerű példa az ilyen típusú már fent vizsgált. Ez valósul hiba miatt a beérkező adatokat, amelyek nem szűrjük.

  • Hiba alapú SQL injection. Ahogy a neve is mutatja, ez a típus is használ egy hiba, küld kifejezések tagjai szintaktikailag hibás. Aztán ott van a lehallgatást a válasz fejlécét, elemzése, amely lehet végezni később SQL-injekció.

  • Halmozott lekérdezi a SQL injekció formájában. Ez a biztonsági rés végrehajtásával határozzuk meg egymást kéréseket. Ez jellemzi az adagolás végén a jel „;”. Ezt a megközelítést gyakran végre elérni a végrehajtását adatok olvasására és írására, illetve az operációs rendszer funkcióit, ha jogosultságokat teszi lehetővé.

Szoftver kereső SQL-sebezhetőséget

Van az SQL-befecskendezés, a program általában két komponens - a site scan az esetleges réseket, és használja őket, hogy hozzáférjen az adatokhoz. Vannak eszközök szinte minden ismert platformon. A funkcionalitást nagyban megkönnyíti ellenőrzése honlapján feltörni az SQL-injection.

sqlmap

Nagyon erős szkenner, amely együttműködik a legtöbb adatbázisban. Támogatja különböző végrehajtási módszereket SQL-injection. Ez a képesség, hogy automatikusan felismeri a típusát jelszó hash repedés és szótár. Jelen és funkcionális fájl feltöltési és letöltési a szervertől.

Telepítés Linux végezzük a parancsokat:

  • git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev,
  • cdsqlmap-dev /,
  • ./sqlmap.py --wizard.

For Windows opcióként a parancssorban és grafikus felhasználói felület.

jSQL Injection

jSQL Injection - egy cross-platform eszköz tesztelésére használata SQL réseket. Java-ban írt, így a rendszer telepíteni kell JRE. Képes kezelni GET kéréseket, POST, fejléc, süti. Ez egy kényelmes grafikus felület.

Telepítés A szoftvercsomag a következő:

wget https://github.com/`curl -s https: //github.com/ron190/jsql-injection/releases | grep-E -o „/ron190/jsql-injection/releases/download/v[0-9]{1,2}.[0-9]{1,2}/jsql-injection-v[0-9] . {1,2} [0-9] {1,2} .jar „| fej-n 1`

Az indítás parancs segítségével java -jar ./jsql-injection-v*.jar

Annak érdekében, hogy indítsa el a vizsgálati helyszínen az SQL-kiszolgáltatottság, meg kell adnia a címet a felső mezőbe. Ezek külön GET és POST. A pozitív eredmény, a rendelkezésre álló asztalok jelennek meg a bal oldali ablakban. Megnézheti őket, és tanulni néhány bizalmas információkat.

fül «Admin oldal» használják, hogy megtalálják a közigazgatási panelek. Rajta révén különleges sablonok automatikusan megkeresi a rendszer rögzíti felhasználók számára. Tőlük lehet kapni csak egy hash a jelszó. De megvan az eszköztár a program.

Miután megtalálta a réseket és a befecskendezés szükséges vizsgálatokat, az eszköz lehetővé teszi, hogy a szerver adja meg a fájl, vagy éppen ellenkezőleg, onnan letöltheted.

SQLi Dumper V.7

Ez a program - könnyen használható eszköz megtalálása és megvalósítása SQL réseket. Gyárt az ENSZ alapul az úgynevezett Dorcas. A lista megtalálható az interneten. Dorca SQL-injection - ezek speciális sablonok keresési lekérdezések. Ezek segítségével megtalálja a potenciálisan veszélyeztetett oldalon keresztül minden kereső.

Eszközök képzés

Itsecgames.com helyben van egy speciális eszközöket, amelyek segítségével a példa azt mutatja, hogyan kell csinálni SQL injection és kipróbálni. Annak érdekében, hogy hasznot, meg kell letölteni és telepíteni. Az archívum tartalmaz egy sor olyan kép, ami a szerkezet a helyszínen. A telepítéshez szükség lesz a meglévő rendszerben beállított Apache webszerver, a MySQL és a PHP.

Az archívum kibontása egy webszerver mappát, akkor kell menni a megadott címet, ha telepíti ezt a szoftvert. Egy oldal felhasználói regisztráció. Itt meg kell adnia az adatait, és kattintson az «Create». Mozgó a felhasználó egy új képernyő, a rendszer arra kéri, hogy válassza ki az egyik vizsgált esetben. Köztük vannak mind a leírt injekcióval, és sok más vizsgálati elemeket.

Érdemes megfontolni egy példa az SQL-injection típusú GET / Search. Itt kell kiválasztani, és kattintson «Hack». Mielőtt a felhasználó jelenik meg, és a keresési karakterláncot utánzata egy filmes portál. Rendezéséhez filmek hosszú lehet. De már csak 10. Például, akkor próbálja meg a Vasember. Ez jelzi a film, akkor is működik az oldal, és a táblák tartalmaz. Most nézzük meg, hogy a speciális karakterek script szűrők, különösen idézet. Ehhez hozzá „a címsorba." Sőt, ezt meg kell tenni, miután a film címe. Az oldal ad egy hiba Hiba: Van egy hiba az SQL szintaxis; ellenőrizze a kézikönyvet, amely megfelel a MySQL szerver verzió a helyes szintaxist használja közelében „%” „at line 1, amely kimondja, hogy a karakterek még mindig nem kezelik megfelelően. Így próbálja helyettesíteni a kérését. De először is meg kell számítani a mezők száma. Ezt alkalmazzák ezt a rendelést, ami után bevezetett idézetek: http://testsites.com/sqli_1.php?title=Iron+Man „sorrendben 2 - & action = keresést.

Ez a parancs csak információkat jelenít meg a film, hogy van, a mezők száma nagyobb, mint 2. A dupla kötőjelet megmondja a szervernek, hogy a más kérelmeket meg kell semmisíteni. Most meg kell rendezni, amivel egyre nagyobb jelentőséget, amíg a hiba nem kerül nyomtatásra. A végén kiderül, hogy a mezők lesz 7.

Most itt az ideje, hogy valami hasznos az alapból. Kissé módosítani a kérelmet a címsorba, így azt a formáját: http://testsites.com/sqli_1.php?title=Iron+Man szakszervezete válasszuk az 1-adatbázis () felhasználó (), 4, jelszó, 6, 7 a felhasználók - & action = keresést. Ennek eredményeként a végrehajtásának kiírja a húr a jelszó hash, amely könnyen átalakítható érthető szimbólumok segítségével az egyik online szolgáltatásokat. A elővarázsolt egy kicsit, és felkapott egy mező nevét egy bejelentkező, el tudja érni, hogy valaki másnak a bejegyzést, mint például admin az oldalon.

A termék egy tömeg fajok injekció típusú, amelyre a gyakorlatban. Emlékeztetni kell arra, hogy a kérelmet az e készségek a hálózat valós helyek lehetnek bűncselekmény.

Injekció és PHP

Általános szabály, hogy a PHP-kódot, és felelős a szükséges feldolgozási érkező kérelmeket a felhasználó. Ezért ezen a szinten meg kell építeni egy elleni védekezés SQL-injection PHP.

Először is nézzük, hogy néhány egyszerű iránymutatások alapján, amelyeket szükséges megtenni.

  • Az adatokat mindig ki kell feldolgozni helyezés előtt az adatbázisba. Ezt meg lehet tenni akár a meglévő kifejezéseket, illetve szervezésével lekérdezések kézzel. Itt is figyelembe kell venni, hogy a numerikus értékeket alakítjuk a típus, ami szükséges;
  • Kerülni kéri különböző ellenőrzési struktúrákat.

Most egy kicsit a szabályokat összeállításának lekérdezéseket MySQL elleni SQL-injection.

Összeállításakor olyan kifejezéseket, hogy a lekérdezés fontos szétválasztani az adatokat az SQL kulcsszavak.

  • SELECT * FROM tábla WHERE name = Zerg.

Ebben a konfigurációban a rendszer úgy gondolja, hogy a Zerg - a nevét bármely területén, így meg kell csatolniuk a idézőjelek.

  • SELECT * FROM tábla WHERE name = 'Zerg'.

Vannak azonban olyan esetek, amikor az érték maga is tartalmaz idézeteket.

  • SELECT * FROM tábla WHERE name = 'Elefántcsontpart'.

Itt csak kezelni része Côte d, és a többi is érzékelhető, mint egy csapat, amely természetesen nem. Ezért hiba történik. Akkor kell ezt a fajta szűrés adatokat. Ehhez használja a backslash - \.

  • SELECT * FROM tábla WHERE name = 'macska-d \' Ivoire”.

Az összes fenti utal, hogy a sorok. Ha a tevékenység zajlik egy számot, akkor nem kell semmilyen idézetek vagy perjelet. Azonban meg kell követelni, hogy erőszakkal vezet a kívánt adattípust.

Vannak javaslatok, hogy a mező nevét kell helyezni backquotes. Ez a szimbólum a bal oldalon a billentyűzet, valamint egy tilde „~”. Ez biztosítja, hogy a MySQL képes pontosan megkülönböztetni a mező nevét a kulcsszavak.

Dinamikus munka adatokkal

Nagyon gyakran, hogy bármilyen adatot az adatbázisból a lekérdezések, dinamikusan generált. Például:

  • SELECT * FROM tábla WHERE száma = '$ szám'.

Itt a változó $ szám átadásra értékének meghatározásához a területen. Mi fog történni, ha nem lesz „Elefántcsontpart”? Error.

Annak elkerülése érdekében, ez a baj, persze, akkor is a „magic quotes” beállítások. De most az adatok kerülnek vetítésre, ahol szükséges és nem szükséges. Ezen felül, ha a kód van írva kézzel meg lehet tölteni egy kis időt, hogy hozzon létre repedezik magát a rendszert.

A független hozzáadásával perjel használhatja mysql_real_escape_string.

$ Number = mysql_real_escape_string ($ szám);

$ Year = mysql_real_escape_string ($ évente);

$ Query = "INSERT INTO tábla (szám, év, osztály) VALUES ( '$ number'," $ év, 11)."

Bár a kód és a megnövekedett térfogatú, de potenciálisan ez a munka sokkal biztonságosabb.

helyőrzők

Placeholders - egyfajta markerek, amelyek a rendszer felismeri, hogy ez az a hely, amire szükség van, hogy helyettesítse a speciális funkciót. Például:

$ Megsegítésére = $ mysqli-> készíteni ( "SELECT negyedben száma, ahol Name =?");

$ Sate-> bind_param ( "s", $ szám);

$ Sate-> execute ();

Ez a kódrészlet tart képzést kérelem sablont, majd megköti a változó számú, és végrehajtja. Ez a megközelítés lehetővé teszi, hogy szét a lekérdezés feldolgozása és annak végrehajtását. Így meg lehet menteni a használata rosszindulatú kód van SQL-.

Mi lehet a támadó

Protection System - egy nagyon fontos tényező, amelyet nem lehet figyelmen kívül hagyni. Természetesen egy egyszerű névjegykártyák site könnyebb lesz helyreállítani. És ha ez egy nagy portál, szolgáltatás, fórum? Milyen következményei vannak, ha nem gondol a biztonság?

Először is, egy hacker tönkreteheti a integritását mind az alap, és vegye ki teljesen. És ha a webhely rendszergazdája vagy tárhelyszolgáltatóval nem egy biztonsági másolat, akkor nehéz időkben. Mindenekelőtt a behatoló, repedés egyetlen hely, lehet menni a másik írt ugyanazon a szerveren.

Tovább a lopás a személyes adatok a látogatók. Hogyan kell használni - minden korlátozott, csak a képzelet egy hacker. De minden esetben, a következmények nem lesz túl kellemes. Különösen, ha foglalt pénzügyi információkat.

Továbbá, a támadó egyesíteni adatbázis magát, majd pénzt kicsikarni annak visszatérését.

A félretájékoztatás felhasználó nevében a webhely rendszergazdája, a személy azokat nem is lehet negatív következmények esetleges csalás tényeket.

következtetés

Minden információ ebben a cikkben csupán tájékoztató jellegűek. Azt csak kell tesztelni a saját projektek, amikor érzékeli a sérülékenységek és azok megoldására.

Egy alaposabb tanulmányozása technikák, hogyan kell lefolytatni SQL-injection, meg kell kezdeni a tényleges kutatási lehetőségek és funkciók az SQL nyelv. Összeállított lekérdezések, kulcsszavak, adattípusok, és a használata az egészet.

Szintén nem nélkülözheti működésének megértéséhez PHP és HTML elemek funkcióit. Az elsődleges használata sebezhető pontokat injekció - egy cím vonal, és a különböző keresési mezőbe. Learning PHP függvények, a végrehajtás módját, és jellemző kitalálni, hogyan lehet elkerülni a hibákat.

A jelenléte sok kész szoftver eszközök lehetővé teszik a mélyreható elemzést a helyszínen ismert biztonsági rések. Az egyik legnépszerűbb termék - Kali linux. Ez a kép egy Linux-alapú operációs rendszer, amely számos eszközöket és programokat, amelyek elvégzésére átfogó elemzését hely erejét.

Mit kell tudni, hogyan lehet feltörni az oldalt? Ez nagyon egyszerű - szükség van, hogy tisztában legyenek a potenciális biztonsági réseket a projekt vagy a honlapon. Különösen, ha ez egy online áruház az online fizetés, amennyiben a fizetési felhasználói adatok veszélybe kerülhet egy támadó.

A professzionális tanulmányt a meglévő információs biztonsági személyzet képes lesz, hogy nézd meg a helyszínen a különböző szempontok és mélységét. Kezdve az egyszerű HTML-injekciókat és social engineering és az adathalászat.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hu.unansea.com. Theme powered by WordPress.