Вимоги: Використовуйте інструмент open-source тестування на проникнення SQL для тестування інтерфейсів вебсайтів на ризики ін'єкції. SQL-ін'єкція означає, що веб-додаток не оцінює легітимність вхідних даних користувача або фільтрація не є суворою, і зловмисник може додавати додаткові SQL-оператори до кінця запиту, визначеного заздалегідь у веб-додатку, і виконувати незаконні операції без відома адміністратора, щоб обдурити сервер бази даних і змусити його виконувати несанкціоновані довільні запити для подальшого отримання відповідної інформації. Коротко кажучи, це такІнтерфейс бекенду виконує SQL-оператори, поєднуючи запитувані параметри。
Огляд:
SQL Map — це інструмент з відкритим кодом для тестування проникнення, який автоматизує процес виявлення та експлуатації вразливостей SQL-ін'єкцій та захоплення серверів баз даних. Він оснащений потужним рушієм виявлення, багатьма вузькими функціями абсолютного тестера проникнення, а також широким спектром комутаторів, включно з fingerprinting database, отриманням даних із баз даних, доступом до базової файлової системи та виконанням команд на операційній системі через позасмугові з'єднання.
SQL Map працює одразу з коробки і працює на будь-якій платформіВерсії Python 2.6, 2.7 та 3.x。
Будівництво середовища SQL Map
Завантаження Python:Вхід за гіперпосиланням видно.
Відкрита адреса SQLMAP:Вхід за гіперпосиланням видно. Документація команд SQLMAP:Вхід за гіперпосиланням видно.
Спочатку комп'ютер має встановити Python (пропущено), а потім скористатися командою git для завантаження вихідного коду наступним чином:
Параметри:
-h, --допомога Показати базове повідомлення допомоги та вийти -----Показати базове повідомлення допомоги та вийти -hh Показати повідомлення розширеної допомоги та вийти----- --версія, щоб побачити номер версії----------- Показати номер версії програми та вихід -v VERBOSE рівень деталізації (0-6, за замовчуванням 1) --Рівень багатослівності: 0-6 (за замовчуванням 1)
Ціль:
Для визначення цільової URL потрібно встановити принаймні одну з наступних опцій, а саме: Принаймні одна з наступних опцій має бути включена в команду операції SQLMap для нормального використання
-d Рядок DIRECT Connection для прямого підключення до бази даних------------------- -u URL, --url=URL Цільова URL --------------------- Цільова URL (наприклад, "http://www.site.com/vuln.php?id=1") -l LOGFILE Розбирати ціль(и) з проксі-файлу логу Burp або WebScarab ---- ціль із лог-файлу Burp або іншого проксі -x SITEMAPURL розбирає ціль із файлу віддаленої sitemap(.xml) --Розбирає цілі з файлу віддаленої sitemap(.xml) Скануйте кілька цілей, наведених у текстовому файлі -------- BULKFILE -r REQUESTFILE Завантажити HTTP-запит із файлу ---------------Завантажити HTTP-запит із файлу -g GOOGLEDORK Обробляйте результати Google dork як цільові URL--- -c CONFIGFILE Завантажити опції з конфігураційного INI-файлу -------------- Завантажити опції з конфігураційного INI-файлу
Просити:
Наступні опції вказують, як підключитися до адреси призначення
--method=METHOD Використання заданого HTTP-методу (наприклад, PUT------------------ --data=рядок даних DATA для передачі через POST за методом POST------------------ --param-del=PARA.. Встановіть символ для розділення значень параметрів-------------------- Символ, що використовується для розщеплення значень параметрів --cookie=COOKIE визначає значення HTTP-файлу cookie ---------------------- значення заголовка HTTP cookie --cookie-del=COO.. Символ, який використовується для розділення значень cookie------------------ Під час тестування точки ін'єкції за допомогою SQLMAP ви можете використати параметр -v x для визначення складності інформації про відлуння, яка коливається від [0~6] до 7 рівнів за замовчуванням 1.
0: Відображаються лише помилки Python разом із критичною інформацією. 1: Відображати як базову, так і попереджувальну інформацію. (за замовчуванням) 2: Одночасно відобразити інформацію про налагодження. 3: Введене корисне навантаження відображається одночасно. 4: Одночасно відображати HTTP-запити. 5: Відобразити заголовок відповіді HTTP одночасно. 6: Відобразити сторінку відповіді HTTP одночасно.
ASP.NET Налаштування середовища ін'єкції ядер
Створіть новий веб-проєкт із використанням ASP.NET Core, напишіть інтерфейс з ін'єкцією, і вихідний код виглядає так:
Тестовий інтерфейс:
Поширені тести на проникнення
Перелічити бази даних СУБД
І використовуйте SQL Server Profile для фіксації виконання SQL, як показано на наступному рисунку:
вибрати * з [Users], де [Ім'я користувача] = 'itsvse' ОБ'ЄДНАННЯ ВСІ ОБЕРІТЬ NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(ВИБРАТИ ім'я ВІД майстра.. sysdatabases FOR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Перелічіть таблиці вказаної бази даних
Команда звучить так:
Для складних HTTP-запитів ви можетечерез параметр -r(Завантаження HTTP-запитів із файлів,Використовуйте інструмент Burp Suite для захоплення HTTP-запитів пакетів) для завантаження оригінального HTTP-запиту з текстового файлу. Це дозволяє уникнути використання багатьох інших опцій (наприклад, налаштувань cookie, опубліковані дані тощо).
SQL Map потужний, дивіться документацію для більш просунутих функцій. (Кінець)
|