SQL-инъекция в Oracle с очищенным вводом

1

Я смотрю на старый код PHP, пытаясь понять, уязвим ли он для SQL-инъекции. Мой босс считает, что это безопасно, но я не решаюсь это принять. Он использует Oracle DB.

Это старый код, и запрос строится посредством конкатенации строк (sprintf). Тем не менее, строка ввода пользователя имеет все дефисы и пробелы, удаленные (через str_replace), и на нее вызывается addlashes(). Есть ли в этом случае какая-либо угроза нападения? Можете ли вы привести пример?

Поскольку код был написан, мы перешли к использованию параметризованных запросов, поэтому в идеале мы обновляем его до этого, но я пытаюсь доказать необходимость этого.

  • 0
    Нет, это звучит не очень безопасно. Скажите своему боссу, что это не безопасно. Если он отказывается слушать, возможно, постарайтесь привлечь других сотрудников на вашу сторону. Если это не сработает, пусть он спит в своей постели. Если ваши серверы взломаны, тогда смейтесь ему в лицо и скажите ему, что вы ему так сказали.
Теги:
sql-injection

1 ответ

2
Лучший ответ

Есть несколько примеров того, как атаковать что-то с помощью addlashes здесь:

Если эта небольшая партия не убедит начальника, то, возможно, настроена на тестовом сервере и создаст инъекцию POC против кода, используя то, что объяснено в приведенных выше ссылках, чтобы продемонстрировать атаку. Таблицы с отрывками довольно драматичны, так как обманывают скрипт, выводя содержимое БД на страницу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню