Najpodrobnejší popis útoku SQL Injection, popisuje históriu, potrebné vybavenie, problematiku prihlasovacích formulárov, použitie UNIONu, problematiku apostrofov, medzier, detekciu znakov, Blind SQL Injection, systémové príkazy ale zaoberá sa aj "nepriestrelným" mod_rewrite a Denial of Service.
Sql injection
1. Úvod 2. Historie a letmý popis SQL 3. Potřebné vybavení 4. Než začneme 5. Situace první - přihlašovací formulář 6. Situace druhá - SQL Injection s využitím UNIONu 7. Databáze information_schema 8. Když se vývojář snaží 8.1 Problém s apostrofy 8.2 Problém s mezerami 8.3 Problém detekce řetězců 9. Čteme soubory... 10. ...a zapisujeme 11. Blind SQL Injection 12. A co systémové příkazy? 13. "Neprůstřelnost" mod_rewrite 14. Denial of Service 15. Závěr
1. Úvod ---------------------------------------------------------------------- SQL Injection je bezpečnostní chyba založená na možnosti manipulovat s daty v databázi bez nutnosti mít k nim legitimní přístup. Na první pohled by se mohlo zdát, že tato chyba je problémem webových technologií. Opak je pravdou. SQL Injection je problémem všech aplikací pracujících s databází. Zneužití může vést k získaní citlivých údajů, jakými jsou přihlašovací údaje, osobní údaje (rodná čísla, čísla bankovních účtu..) a v některých případech může vést k vykonání systémového příkazu, případně k ovládnutí celého serveru/počítače. Principem je vkládání nových/rozšiřujících SQL dotazů do již existujících SQL dotazů.
2. Historie a letmý popis SQL ---------------------------------------------------------------------- SQL je zkratka pro Structured Query Language, tedy strukturovaný dotazovací jazyk využívaný v relačních databázích pro práci s daty. První myšlenka návrhu a vzniku SQL spatřila světlo světa v laboratořích firmy IBM při výzkumu a návrhu relačních databází. Cílem bylo vytvořit jazyk co nejvíce blízký běžné mluvené angličtině, což se nakonec víceméně podařilo. V dnešní době existuje celá řada databázových mutací jazyka SQL - MySQL, MSSQL, Postgre, Oracle, SQLite, MSQL atd.
3. Potřebné vybavení ---------------------------------------------------------------------- Protože se chystáme pracovat s databázovým systémem, bylo by nanejvýš vhodné nainstalovat si ho k sobě na počítač, případně využít služeb některého z freehostingů. Pokud zvolíte druhou možnost, na konec připojuji testovací skript připravený pouze a jen pro použití. Server s podporou PHP, protože většina věcí bude prezentována právě na kombinaci PHP - MySQL. Tyto požadavky plně pokrývá například EasyPHP, jakožto ideální "server" pro začátečníky.
Zdroj: Secit.sk