Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
SQL 注入漏洞检测与利用。当目标存在数据库查询、搜索功能、登录表单、URL 参数时使用。包括 UNION、报错、盲注等技术。
How to use
Zidentyfikuj potencjalne punkty wejścia podatne na SQL injection: parametry URL (id=, page=, search=), pola w formularzach logowania, parametry w ciasteczkach lub nagłówkach HTTP (User-Agent, Referer), oraz dane w treści JSON lub XML.
Rozpocznij od testów podstawowych, wysyłając znaki specjalne takie jak pojedynczy cudzysłów, podwójny cudzysłów, komentarze (-- lub #) i wyrażenia logiczne (AND 1=1, AND 1=2) do podejrzanego parametru. Obserwaj różnice w odpowiedziach aplikacji — błędy bazy danych lub zmieniona zawartość wskazują na podatność.
Jeśli aplikacja wydaje się podatna, określ liczbę kolumn w zapytaniu za pomocą klauzuli ORDER BY (ORDER BY 1, ORDER BY 2, itd.) lub UNION SELECT z rosnącą liczbą NULL. Znajdź maksymalną liczbę kolumn, którą aplikacja akceptuje.
Dla ataku UNION: użyj UNION SELECT, aby wyświetlić dane z tabel systemowych (information_schema, pg_catalog). Wyodrębnij nazwy tabel, kolumn, wersję bazy i dane użytkowników. Dla MySQL spróbuj: UNION SELECT username,password,3 FROM users--
Jeśli bezpośredni wynik nie jest widoczny, zastosuj atak błędów: użyj funkcji takich jak extractvalue() lub updatexml() w MySQL, aby wymusić błąd zawierający wynik zapytania. W PostgreSQL i MSSQL konwertuj wynik na typ, który wywoła błąd.
W przypadku aplikacji, które nie wyświetlają błędów ani wyników, użyj ataku ślepego: testuj warunki logiczne (SUBSTRING, ASCII) i mierz czas odpowiedzi lub różnice w zawartości strony. Wyodrębniaj dane znak po znaku, porównując odpowiedzi dla prawdziwych i fałszywych warunków.