• XSS.stack #1 – первый литературный журнал от юзеров форума

SQLMap. Вопрос от новичка.

weasley7

HDD-drive
Пользователь
Регистрация
26.05.2023
Сообщения
29
Реакции
16
Доброго времени суток!

Нашел слепую скулю. Далее, SQLMap-ом создал полезную нагрузку. Тип скули Blind Time Based.
Удалось найти название БД. На скриншоте, то что происходит при попытке перечислить таблицы.
Таргет отлетает с 500 ошибкой и вовсе ложится на 5-7 минут.
Проверял доступность на сторонних ресурсах - действительно сайт ложиться. Так же, пробовал инжект с разных IP-адресов. Результат тот же.

Проверял наличие WAF инструментами - Atlas и WhatWaf. Кроме cloudflare ничего не обнаружил. Удивило то, что сайт именно ложиться, а не блокирует конкретно соедение с моих адресов.

Вопрос: почему так происходит? Что это за механизм защиты? Как его можно обойти?

Пробовал разные значения параметра --time-sec. Результат тот же. Есть мысли, что тамперы могут помочь. Или это ошибочный вектор? Еще ни разу ими не пользовался.

Еще, интересное наблюдение. Полезную нагрузку удалось создать только при максимальных значениях параметров risk и level. Но после этого один из моих адресов VPN улетел в бан Cloudflare. (при попытке захода на сайт именно с этого IP появляется баннер именно от клауда). С других адресов - доступен.

Еще был момент, что сразу после того как получил полезную нагрузку мне удалось добраться до момента когда SQLMap начал перечесление таблиц. Но процесс прервался по причне того, что у меня отвалился инет. После, уже не удалось добраться до этого этапа. Просиходит, то что я описал в начале поста.

Заранее благодарен за любую информацию, которая поможет разобраться в вопросе!

SQL:
" AND 3368=(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS A, INFORMATION_SCHEMA.COLUMNS B, INFORMATION_SCHEMA.COLUMNS C WHERE 0 XOR 1) AND "lIfD"="lIfD

P.S. Прошу сильно не "пинать", только второй месяц изучаю WAPT и учусь в целом.

photo_2023-06-17 21.02.56.jpeg
 
Последнее редактирование:
Таргет отлетает с 500 ошибкой и вовсе ложится на 5-7 минут.
Проверял доступность на сторонних ресурсах - действительно сайт ложиться. Так же, пробовал инжект с разных IP-адресов. Результат тот же.
Вопрос: почему так происходит? Что это за механизм защиты? Как его можно обойти?
Данный механизм защиты называется "дешевый говно-хостинг", поэтому там БД умирает, если мы говорим о запросах включающие "SLEEP".

Но после этого один из моих адресов VPN улетел в бан Cloudflare. (при попытке захода на сайт именно с этого IP появляется баннер именно от клауда). С других адресов - доступен.
Ничего удивительного. Крутить что-либо напрямую через CloudFlare не нужно, поскольку во первых может мешать WAF, во вторых владелец сайта в панели CF может наблюдать за этим, видеть куда ты ломишься и с какими запросами, видит все срабатывания WAF и всплеск активности. Лучше найти его реальный IP и работать напрямую с ним, возможно и другие векторы получится крутануть (если все таки там WAF CF).

" AND 3368=(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS A, INFORMATION_SCHEMA.COLUMNS B, INFORMATION_SCHEMA.COLUMNS C WHERE 0 XOR 1) AND "lIfD"="lIfD
Это Boolean, а не Time-Based.
 

c0d3x,​

Благодарю за отклик.

На viewdns нашел в истории IP без CF. Адрес датированный несколькими месяцами ранее.
Но на портах не висит SQL служб. Получается, это не то что мне нужно?

Это Boolean, а не Time-Based.

Предполагал, что это не Time-Based т.к в полезной нагрузке не увидел SLEEP и т.п.
Поверил тому, что SQLMap написал Type: time-based blind. Почему так вышло?

Вообще, он два пейлоуда выдал. Вот второй: " AND 4166=4166 AND "JUuc"="JUuc
Тут как раз-таки с плашкой Type: boolean-based blind

Лучше найти его реальный IP и работать напрямую с ним
А как SQL-инъекцию делать используя IP адрес? Связывать домен через /etc/hosts?
Если удалось найти реальный IP.
 
Последнее редактирование:
Но на портах не висит SQL служб. Получается, это не то что мне нужно?
Чаще всего порты СУБД от внешки закрыты, и это нормально, при этом скули можно без проблем крутить, для этого не нужен открытый порт СУБД.

На viewdns нашел в истории IP без CF. Адрес датированный несколькими месяцами ранее.
https://xss.pro/threads/82843/page-2#post-583305 + можешь попробовать посмотреть через dnsdumpster.com - возможно по каким-то DNS записям палится IP, а так же search.censys.io можешь заюзать, там так же может засветиться реальный IP сервера по баннерам в различных протоколах на разных портах.

И как вообще SQL-инъекцию делать используя IP адрес? Связывать домен через /etc/hosts?
Можно так, прописываешь его реальный IP в hosts и крутишь через мап так же как обычно, либо можешь обращаться к нему с хост-хидером таким образом:
Код:
GET https://127.0.0.1/index.php HTTP/1.1
Host: target.com
 
Чаще всего порты СУБД от внешки закрыты, и это нормально, при этом скули можно без проблем крутить, для этого не нужен открытый порт СУБД.


https://xss.pro/threads/82843/page-2#post-583305 + можешь попробовать посмотреть через dnsdumpster.com - возможно по каким-то DNS записям палится IP, а так же search.censys.io можешь заюзать, там так же может засветиться реальный IP сервера по баннерам в различных протоколах на разных портах.


Можно так, прописываешь его реальный IP в hosts и крутишь через мап так же как обычно, либо можешь обращаться к нему с хост-хидером таким образом:
Код:
GET https://127.0.0.1/index.php HTTP/1.1
Host: target.com

Благодарю за помощь! Раскрутил.
 
Доброго времени суток!

Нашел слепую скулю. Далее, SQLMap-ом создал полезную нагрузку. Тип скули Blind Time Based.
Удалось найти название БД. На скриншоте, то что происходит при попытке перечислить таблицы.
Таргет отлетает с 500 ошибкой и вовсе ложится на 5-7 минут.
Проверял доступность на сторонних ресурсах - действительно сайт ложиться. Так же, пробовал инжект с разных IP-адресов. Результат тот же.

Проверял наличие WAF инструментами - Atlas и WhatWaf. Кроме cloudflare ничего не обнаружил. Удивило то, что сайт именно ложиться, а не блокирует конкретно соедение с моих адресов.

Вопрос: почему так происходит? Что это за механизм защиты? Как его можно обойти?

Пробовал разные значения параметра --time-sec. Результат тот же. Есть мысли, что тамперы могут помочь. Или это ошибочный вектор? Еще ни разу ими не пользовался.

Еще, интересное наблюдение. Полезную нагрузку удалось создать только при максимальных значениях параметров risk и level. Но после этого один из моих адресов VPN улетел в бан Cloudflare. (при попытке захода на сайт именно с этого IP появляется баннер именно от клауда). С других адресов - доступен.

Еще был момент, что сразу после того как получил полезную нагрузку мне удалось добраться до момента когда SQLMap начал перечесление таблиц. Но процесс прервался по причне того, что у меня отвалился инет. После, уже не удалось добраться до этого этапа. Просиходит, то что я описал в начале поста.

Заранее благодарен за любую информацию, которая поможет разобраться в вопросе!

SQL:
" AND 3368=(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS A, INFORMATION_SCHEMA.COLUMNS B, INFORMATION_SCHEMA.COLUMNS C WHERE 0 XOR 1) AND "lIfD"="lIfD

P.S. Прошу сильно не "пинать", только второй месяц изучаю WAPT и учусь в целом.

Посмотреть вложение 59255
Обойти защиту WAF может быть сложно, поскольку ее функция заключается именно в блокировании атак, но вы можете попробовать сделать следующее:

- Попытайтесь замедлить запросы, чтобы WAF не смог обнаружить шаблон атаки. Вы можете настроить параметр "--delay" в SQLMap для замедления запросов.

- Использование методов фальсификации, поскольку скрипты фальсификации в SQLMap могут помочь обойти обнаружение WAF. Вы можете попробовать различные скрипты для модификации запросов, чтобы избежать блокировки.

- Модифицировать заголовки, некоторые WAF могут анализировать заголовки запросов для выявления вредоносных шаблонов, а модификация заголовков запросов с помощью SQLMap может помочь избежать обнаружения.

Надеюсь, это поможет
 
Обойти защиту WAF может быть сложно, поскольку ее функция заключается именно в блокировании атак, но вы можете попробовать сделать следующее:

- Попытайтесь замедлить запросы, чтобы WAF не смог обнаружить шаблон атаки. Вы можете настроить параметр "--delay" в SQLMap для замедления запросов.

- Использование методов фальсификации, поскольку скрипты фальсификации в SQLMap могут помочь обойти обнаружение WAF. Вы можете попробовать различные скрипты для модификации запросов, чтобы избежать блокировки.

- Модифицировать заголовки, некоторые WAF могут анализировать заголовки запросов для выявления вредоносных шаблонов, а модификация заголовков запросов с помощью SQLMap может помочь избежать обнаружения.

Надеюсь, это поможет
Хyйню ты прогнал конкретную.

- Попытайтесь замедлить запросы, чтобы WAF не смог обнаружить шаблон атаки. Вы можете настроить параметр "--delay" в SQLMap для замедления запросов.
Каким образом ключ --delay поможет обойти CF WAF? --delay подойдет для обхода рейт-лимита и BF мода, это максимум.

- Использование методов фальсификации, поскольку скрипты фальсификации в SQLMap могут помочь обойти обнаружение WAF. Вы можете попробовать различные скрипты для модификации запросов, чтобы избежать блокировки.
Дефолтными тамперами невозможно обойти CloudFlare WAF, только кастом, и только приват, в паблике нет тамперов с помощью которых можно обойти CF WAF.

Надеюсь, это поможет
Ничего из того что ты написал не поможет когда цель висит под CF WAF.
 
Давайте обойдемся без оскорблений
Пожалуйста, обратите внимание, что пользователь заблокирован
Хyйню ты прогнал конкретную.


Каким образом ключ --delay поможет обойти CF WAF? --delay подойдет для обхода рейт-лимита и BF мода, это максимум.


Дефолтными тамперами невозможно обойти CloudFlare WAF, только кастом, и только приват, в паблике нет тамперов с помощью которых можно обойти CF WAF.


Ничего из того что ты написал не поможет когда цель висит под CF WAF.
Это скорее всего ChatGPT эту х#йню прогнал и чучало её закинула сюда
 
Ничего из того что ты написал не поможет когда цель висит под CF WAF.
Поспешил я с "раскрутил" :D
CF обошел, найдя реальный адрес хоста. Подгрузил его в /etc/hosts. Больше IP-адреса в бан не кидают

Далее, с помощью тампера uppercase удалось обойти 500-ую ошибку. И удалось перебрать наименование столбцов в таблице admins.

При попытке сдампить строки из столбцов с этим же тампером снова выдает 500-ую ошибку. Подобрал другой тампер, от 500-ой ошибки избавился.
Но SQLMap заканчиваетс ошибкой - [WARNING] unable to retrieve the number of column(s) 'id' entries for table 'admins' in database 'v1_db'

Пробовал из других таблиц тоже, тот же результат.

Какие могут быть причины? Отсутвие доступа? Как это можно обойти? Или пробовать другие тамперы? Подскажи пожалуйста, в какую сторону смотреть.

Команда:
--technique=B --keep-alive --random-agent --ignore-redirects --ignore-timeout --drop-set-cookie -T admins -C id --tamper=chardoubleencode --hex --dump -v3

web application technology: LiteSpeed, PHP
back-end DBMS: MySQL > 5.0.12 (MariaDB fork)
banner: '10.4.30-MariaDB'
DBA - false
Тип столбцов: numeric, non-numeric

Пейлоуд: 1" AND ORD(MID((SELECT HEX(IFNULL(CAST(COUNT(*) AS NCHAR),0x20)) FROM v1_db.admins),1,1))>1 AND "dIpD"="dIpD
 
Последнее редактирование:
Поспешил я с "раскрутил" :D
CF обошел, найдя реальный адрес хоста. Подгрузил его в /etc/hosts. Больше IP-адреса в бан не кидают

Далее, с помощью тампера uppercase удалось обойти 500-ую ошибку. И удалось перебрать наименование столбцов в таблице admins.

При попытке сдампить строки из столбцов с этим же тампером снова выдает 500-ую ошибку. Подобрал другой тампер, от 500-ой ошибки избавился.
Но SQLMap заканчиваетс ошибкой - [WARNING] unable to retrieve the number of column(s) 'id' entries for table 'admins' in database 'v1_db'

Пробовал из других таблиц тоже, тот же результат.

Какие могут быть причины? Отсутвие доступа? Как это можно обойти? Или пробовать другие тамперы? Подскажи пожалуйста, в какую сторону смотреть.

Команда:
--technique=B --keep-alive --random-agent --ignore-redirects --ignore-timeout --drop-set-cookie -T admins -C id --tamper=chardoubleencode --hex --dump -v3

web application technology: LiteSpeed, PHP
back-end DBMS: MySQL > 5.0.12 (MariaDB fork)
banner: '10.4.30-MariaDB'
DBA - false
Тип столбцов: numeric, non-numeric

Пейлоуд: " AND 4166=4166 AND "JUuc"="JUuc
Возможно фильтруются какие-то слова/символы/комбинации слов/символов. Руками пробовал чекать?
https://xss.pro/threads/14482/post-571373
https://xss.pro/threads/14482/post-571875
 
Возможно фильтруются какие-то слова/символы/комбинации слов/символов. Руками пробовал чекать?
https://xss.pro/threads/14482/post-571373
https://xss.pro/threads/14482/post-571875

Думал над этим, но не попробовал. Т.к, подумал что раз с тампером нету 4хх/5хх ошибки, то возможно дело в чем-то другом.

Благодарю за линки. Буду разбираться.
 
Возможно фильтруются какие-то слова/символы/комбинации слов/символов. Руками пробовал чекать?
https://xss.pro/threads/14482/post-571373
https://xss.pro/threads/14482/post-571875

Второй день руками пытаюсь обойти фильтрацию. Много разной информации перечитал за эти дни. По итогу, не много запутался.

При успешной слепной инъекции, сервер не должен выдавать никаких ошибок. И соотвественно на сайте не должно отображаться ошибок по типу "категория товаров не найдена". (у меня на целе уязвим параметр в ссылке category_id)

Верно?

Кручу через Burp Repeater.
 
Второй день руками пытаюсь обойти фильтрацию. Много разной информации перечитал за эти дни. По итогу, не много запутался.

При успешной слепной инъекции, сервер не должен выдавать никаких ошибок. И соотвественно на сайте не должно отображаться ошибок по типу "категория товаров не найдена". (у меня на целе уязвим параметр в ссылке category_id)

Верно?

Кручу через Burp Repeater.
По разному, мап может ориентироваться на любой string, в том числе и на ошибки вэб сервера. Если не сможешь сам докрутить - скинь под хайд таргет, попробую ковырнуть.
 
По разному, мап может ориентироваться на любой string, в том числе и на ошибки вэб сервера. Если не сможешь сам докрутить - скинь под хайд таргет, попробую ковырнуть.

Еще раз спасибо за отклик. Пока продолжу крутить самостоятельно. Больше важен процесс и собственный опыт, нежели результат.
 
При успешной слепной инъекции, сервер не должен выдавать никаких ошибок. И соотвественно на сайте не должно отображаться ошибок по типу "категория товаров не найдена". (у меня на целе уязвим параметр в ссылке category_id)
Совсем не обязательно, потому иньекция и называется "слепая". Триггерить же мап может что угодно. Если при каждом неверном запросе выдает эту строку (т.е. имеется в виду так же запрос, когда он true, но искомое значение не найдено в бд, а не онли когда нарушена логика\структура запроса), то чекни с кеями --not-string="категория товаров не найдена" и --tamper="between". Сам sqlmap пропусти через берп ( --proxy=https://localhost:8080 ), предварительно поставив на паузу passive crawl и live audit, так гораздо удобнее смотреть в логгере (или аналогичных по функционалу плагинах берпа) реквесты и респонзы, как сервер реагирует на тот или иной запрос мапа.
>>>Больше важен процесс и собственный опыт, нежели результат.
Уважаю подход. +
 
Совсем не обязательно, потому иньекция и называется "слепая". Триггерить же мап может что угодно. Если при каждом неверном запросе выдает эту строку (т.е. имеется в виду так же запрос, когда он true, но искомое значение не найдено в бд, а не онли когда нарушена логика\структура запроса), то чекни с кеями --not-string="категория товаров не найдена" и --tamper="between". Сам sqlmap пропусти через берп ( --proxy=https://localhost:8080 ), предварительно поставив на паузу passive crawl и live audit, так гораздо удобнее смотреть в логгере (или аналогичных по функционалу плагинах берпа) реквесты и респонзы, как сервер реагирует на тот или иной запрос мапа.
>>>Больше важен процесс и собственный опыт, нежели результат.
Уважаю подход. +

Благодарю, полезный совет. Сегодня продолжу пробовать.
 
Как раскрутишь, не забудь поделиться подробностями :)

Обязательно.

Нехило с ней поковырялся, но без результатно. Отложил пока. Ушел на hack the box, учиться. Нужно больше опыта.
 
Обязательно.

Нехило с ней поковырялся, но без результатно. Отложил пока. Ушел на hack the box, учиться. Нужно больше опыта.
TryHackMe тоже хорошая платформа, пробывал HTB тоже, но THM зашло больше
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх