|
|
Zveřejněno 17.06.2023 11:10:55
|
|
|
|

Požadavky: Použijte open-source nástroj sqlmap pro penetrační testování k testování webových rozhraní na rizika injekce. SQL injection znamená, že webová aplikace neposuzuje legitimitu vstupních dat uživatele nebo filtrování není přísné, a útočník může přidat další SQL příkazy na konec dotazovacího příkazu definovaného předem ve webové aplikaci a provádět nelegální operace bez vědomí administrátora, aby oklamal databázový server a vykonal neoprávněné libovolné dotazy a dále získal odpovídající datové informace. Stručně řečeno, je toBackendové rozhraní vykonává SQL příkazy tím, že spojuje požadované parametry dohromady。
Přezkoumání:
sqlmap je open-source nástroj pro penetrační testování, který automatizuje proces detekce a zneužívání zranitelností SQL injekcí a převzetí databázových serverů. Je vybaven výkonným detekčním enginem, mnoha specializovanými funkcemi ultimátního penetračního testeru a širokou škálou přepínačů, včetně databázového fingerprintingu, načítání dat z databází, přístupu k podkladovému souborovému systému a provádění příkazů v operačním systému přes mimopásmová připojení.
sqlmap funguje hned po instalaci a funguje na jakékoli platforměPython verze 2.6, 2.7 a 3.x。
Konstrukce prostředí sqlmap
Stažení Pythonu:Přihlášení k hypertextovému odkazu je viditelné.
SQLMAP open source adresa:Přihlášení k hypertextovému odkazu je viditelné. Dokumentace příkazů SQLMAP:Přihlášení k hypertextovému odkazu je viditelné.
Nejprve musí počítač nainstalovat Python (vynecháno) a poté použít příkaz git ke stažení zdrojového kódu, následovně:
Volby:
-h, --help Zobrazit základní nápovědu a ukončit ----- Zobrazit základní nápovědu a ukončit -hh Zobrazit pokročilou nápovědu a ukončit to----- --verze pro zobrazení čísla verze----------- Zobrazit číslo verze programu a ukončit -v VERBOSE úroveň detailu (0-6, výchozí 1) --Úroveň rozvláčnosti: 0-6 (výchozí 1)
Cíl:
Je třeba nastavit alespoň jednu z následujících možností pro určení cílové URL, a to: Alespoň jedna z následujících možností musí být zahrnuta v příkazu SQLMap, aby bylo možné jej normálně používat
-d DIRECT Connection řetězec pro přímé připojení k databázi------------------- -u URL, --url=URL Cílová URL --------------------- Cílová URL (např. "http://www.site.com/vuln.php?id=1") -l LOGFILE Parsujte cíl(y) z logu Burp nebo WebScarab proxy log ---- cíl z log souboru Burp nebo jiného proxy -x SITEMAPURL parsuje cíl ze vzdáleného sitemap(.xml) souboru --Parse target(y) ze vzdáleného sitemap(.xml) souboru Skenujte více cílů uvedených v textovém souboru -------- BULKFILE -r REQUESTFILE Načíst HTTP požadavek ze souboru ---------------Načíst HTTP požadavek ze souboru -g GOOGLEDORK Zpracuj výsledky Google dork jako cílové URL--- -c KONFIGURAČNÍ soubor Možnosti načtení z konfiguračního INI souboru -------------- Načtení možností z konfiguračního INI souboru
Prosba:
Následující možnosti specifikují, jak se připojit k cílové URL
--method=METHOD Vynuťte použití dané HTTP metody (např. PUT------------------ --data=DATA Datový řetězec, který má být odeslán přes POST pomocí metody POST------------------ --param-del=PARA.. Nastavte symbol pro oddělení hodnot parametrů-------------------- Znak použitý pro rozdělení hodnot parametrů --cookie=COOKIE specifikuje hodnotu HTTP cookie ---------------------- hodnotu HTTP cookie header --cookie-del=COO.. Znak používaný pro rozdělení hodnot cookies------------------ Při testování injekčního bodu pomocí SQLMAP můžete použít parametr -v x k určení složitosti echo informací, které se pohybují od [0~6] do 7 úrovní, s výchozím nastavením 1.
0: Zobrazují se pouze chyby v pythonu spolu s kritickými informacemi. 1: Zobrazit jak základní informace, tak varovné informace. (výchozí) 2: Zobrazit ladicí informace současně. 3: Současně se zobrazí vložený payload. 4: Zobrazit HTTP požadavky současně. 5: Současně zobrazit hlavičku HTTP odpovědi. 6: Zobrazit současně stránku HTTP odpovědi.
ASP.NET Nastavení prostředí pro injekci jádra
Vytvořte nový webový projekt pomocí ASP.NET Core, napište rozhraní s injekcí a zdrojový kód je následující:
Testovací rozhraní:
Běžně používané penetrační testy
Enumerate databáze DBMS
A použít SQL Server Profile k zachycení provádění SQL, jak je znázorněno na následujícím obrázku:
vyber * z [Users], kde [Username] = 'itsvse' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(VYBER jméno OD mastera.. sysdatabases FOR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Vyjmenujte tabulky specifikované databáze
Příkaz je následující:
U složitých HTTP požadavků můžetepomocí parametru -r(Načítání HTTP požadavků ze souborů,Použijte nástroj Burp Suite k zachycení HTTP požadavků na pakety) pro načtení původního HTTP požadavku z textového souboru. To vám umožní vyhnout se používání mnoha dalších možností (např. nastavení cookies, zveřejněných dat atd.).
sqlmap je výkonný, podívejte se na dokumentaci pro pokročilejší funkce. (Konec)
|
Předchozí:EF 6 provádí nativní SQL příkazy, problémy s injekcí parametrůDalší:[Přenos] do MySQL Advanced: optimalizace příkazů tabulky
|