jSQL Injection може стати в нагоді в ситуаціях, коли вас цікавлять: пошук SQL-ін'єкцій і адмінок, закачування Шелл, файлів і читання вмісту файлів сервера, брут-форс хешів, масова перевірка сайтів, використання проксі і багато іншого.
Тобто це дуже різносторонній комбайн, в якому прекрасно реалізована головна функція - експлуатація SQL-ін'єкцій, і при цьому вельми добре реалізує всі супутні операції, які зазвичай робляться при виявленні уразливого сайту.
Для виявлення та експлуатації SQL-ін'єкцій мені завжди подобалася sqlmap. Це утиліта командного рядка, вона вміє дуже багато, використовує всілякі методи SQL-ін'єкцій, намагається обходити захисту сервера, може закачувати шелли і багато іншого. Вона також кроссплатформенная, актуальна і дуже ефективна. Ця програма мені не перестала подобатися, але я вважаю: чим більше альтернатив хороших і різних - тим краще. До того ж, оскільки sqlmap вкрай потужна і гнучка, то для програми командного рядка це означає величезну кількість різноманітних опцій. Для новачків, особливо такі «просунуті» операції як затоку шелла, це може здатися занадто складним.
У jSQL Injection відмінний графічний інтерфейс. Програма написана на Java, вона є кроссплатформенной і дуже невибагливої до ресурсів. Файл програми, між іншим, займає всього 2.3 мегабайта.
Але почнемо по порядку - з пошуку кандидатів на злом. Не буде зайвим нагадати, що злом є кримінально караним злочином. Тому проявляйте тверезість - не робіть нічого такого, що порушує закон. Ідеальним (з точки зору юридичної чистоти) є використання для навчання уразливого скрипта на локалхосте або в одній із спеціалізованих середовищ, яких зараз є велика кількість.
1. Пошук вразливих до SQL-ін'єкцій сайтів.
Найкращим способом є пошук в Гугл по Доркен. Ця таблиця запозичена з сайту blackmoreops.com (шикарний сайт - я дуже багато чому навчився саме по ньому):
Тоді я пробую так:
Якщо з'являється якесь повідомлення про помилку SQL, то висока ймовірність того, що сайт вразливий до SQL-ін'єкції.
Також часто вразливі сайти трапляються серед тих, хто у відповідь на лапку нічого не виводить, або поведінку сайту дає підставу припустити недостатню фільтрацію даних.
Ще можна спробувати удачу пошуком по помилках:
- inurl: index.php? id = intext: "mysql_fetch_array"
- inurl: advsearch.php? module = intext: sql syntax
- "CHARACTER_SETS" "COLLATION_CHARACTER_SET_APPLICABILITY"
- "Unable to jump to row" "on MySQL result index" "on line"
- "[SQL Server Driver] [SQL Server] Line 1: Incorrect syntax near" -forum -thread -showthread
- "Warning: mysql_query ()" "invalid query"
- intitle: "Error Occurred While Processing Request"
- "You have an error in your SQL syntax near"
- "MySQL error with query"
- intext: "Access denied for" intitle: "Shopping cart"
- "Supplied argument is not a valid MySQL result resource"
Алгоритм дій такий же - відкривайте сайти по одному і пробуйте вставляти лапки.
Абсолютно точно не варто шукати SQL-ін'єкції в популярних движках. Навіть якщо вони там і виявляються, то практично завжди виявляються важко експлуатованими. Якщо ви Новомосковскете цю інструкцію, то це точно (поки) не ваш рівень. Популярні движки можуть стати вразливими через вразливих плагінів (особливо самописних). Але, знову ж таки, це поки не наш рівень.
2. Установка jSQL Injection
jSQL Injection вже встановлена в Kali Linux. Але версія там (принаймні на момент написання) уже досить стара (0.5), а доступна вже 0.72. З огляду на, що jSQL Injection ставиться елементарно - в одну команду, то можна завантажити найсвіжішу з офіційного сайту:
Після завантаження запускаємо так:
Ось так виглядає головне вікно програми:
Погодьтеся, це було зовсім просто - витрачені 5 секунд часу варті того, щоб працювати в найсвіжішої версії.
Між іншим, це одна з тих програм для пентестінга, які прекрасно працюють в Windows.