Рисунок 7.1 – Форма ввода
Для эксплуатации уязвимости будет использована утилита sqlmap.
На рисунке 7.2 представлена команда, запускающая сканирование: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit" – cookie=’security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73»».
Рисунок 7.2 – Запуск сканирования
В ходе сканирования было выяснено, что используется СУБД MySQL, уязвимый параметр – id. Результаты сканирования изображены на рисунке 7.3.
Рисунок 7.3 – Результаты сканирования
Далее необходимо получить список баз данных, для этого к команде добавляется ключ —dbs: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit" – cookie=’security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73» —dbs». Результаты изображены на рисунке 7.4.
Рисунок 7.4 – Список баз данных
Теперь можно получить список таблиц в базе dvwa. Для этого через ключ -D нужно указать БД, затем указать ключ —tables, чтобы получить названия таблиц: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit" – cookie=’security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73» -D dvwa —tables». Результаты изображены на рисунке 7.5.
Рисунок 7.5 – Таблицы в базе dvwa
Теперь можно получить записи таблицы users. Для этого ключ —tables меняется на -T users, добавляется ключ —dump: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit" – cookie=’security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73» -D dvwa -T users —dump». Результаты изображены на рисунке 7.6.
Рисунок 7.6 – Содержимое таблицы users
Также на скриншоте видно, что sqlmap в процессе работы нашёл пароли в открытом виде, использовав перебор по встроенному словарю.
8 SQL Injection Medium
SQL Injection (внедрение кода SQL) – атака, связанная с внедрением в SQL-запрос сервера к СУБД произвольного кода.
В DVWA на странице SQL Injection представлена форма ввода id пользователя, изображённая на рисунке 8.1.
Рисунок 8.1 – Форма ввода
Для эксплуатации уязвимости будет использована утилита sqlmap. В качестве аргумента будет передаваться файл, содержащий POST-запрос в текстовом виде. Содержимое файла представлено на рисунке 8.2.
Рисунок 8.2 – Содержимое файла header. txt
На рисунке 8.3 представлена команда, запускающая сканирование: «sqlmap -r header. txt».
Рисунок 8.3 – Запуск сканирования
В ходе сканирования было выяснено, что используется СУБД MySQL, уязвимый параметр – id. Результаты сканирования изображены на рисунке 8.4.
Рисунок 8.4 – Результаты сканирования
Далее необходимо получить список баз данных, для этого к команде добавляется ключ —dbs: «sqlmap -r header. txt – dbs». Результаты изображены на рисунке 8.5.
Рисунок 8.5 – Список баз данных
Теперь можно получить список таблиц в базе dvwa. Для этого через ключ -D нужно указать БД, затем указать ключ —tables, чтобы получить названия таблиц: «sqlmap -r header. txt -D dvwa – tables». Результаты изображены на рисунке 8.6.
Рисунок 8.6 – Таблицы в базе dvwa
Теперь можно