Ін'єкційний

Ін'єкційний

Перетворіть поле пошуку на читання всієї бази даних.

Що таке Ін'єкційний?

Ненадійний вхід об’єднується в запит, який потім аналізує інтерпретатор, тому вхід перестає бути значенням і стає частиною інструкції. Ви розширите кінцеву точку пошуку в каталозі за три кроки: одинарна цитата викликає необроблену помилку SQL, яка повторює запит, умова, яка завжди виконується, видаляє опублікований фільтр, а UNION SELECT досягає іншої таблиці для електронних листів облікових записів, хешів bcrypt і ролей. Виправлення є зв'язаним параметром, тому база даних компілює оператор спочатку. Повернення необробленої помилки SQL також передає зловмиснику карту.

Що ви дізнаєтесь у Ін'єкційний

Ін'єкційний — Кроки навчання

  1. Звичайне місце покупця

    Wexlar керує оптовим ринком і надає облікові записи покупців самообслуговування кожному, хто зареєструється. Боб взяв один, із одноразовою ідентичністю. Його місце займає простий покупець: переглядати каталог, робити замовлення, нічого привілейованого. Він відкриває консоль розробника, щоб побачити, що таке обліковий запис і що пропонує API.

  2. Одне поле пошуку

    Ніщо в обліковому записі Боба не є привілейованим, тому немає доступу до функцій адміністратора. Єдиний вхідний елемент, який його цікавить, — це пошук у каталозі: він бере все, що він вводить, і виконує збіг назв із базою даних продуктів.

  3. Звичайний пошук

    Боб починає зі звичайного пошуку, щоб побачити роботу кінцевої точки та дізнатися її форму. Пошук приймає параметр запиту q і повертає продукти, назва яких відповідає.

  4. Працює за призначенням

    Пошук поводиться точно так, як очікувалося. Три опублікованих ноутбука, лише ті поля, які має бачити покупець.

  5. Додайте одну лапку

    Найстаріший ін’єкційний зонд: Боб додає одну лапку до свого пошукового терміну. Якщо термін шукається як значення, пошук імені з лапками просто нічого не повертає. Якщо він об’єднується в SQL, помилкова цитата порушить запит.

  6. Розкритий запит

    Один додатковий символ призвело до збою кінцевої точки, і ця помилка дала Бобу потрібне підтвердження.

  7. Перепишіть фільтр

    Тепер, коли Боб знає, що термін стає частиною запиту, він перестає порушувати його та починає керувати ним. Він створює термін, який закриває рядок, додає умову, яка завжди є істинною, і коментує решту оригінального запиту.

  8. Весь стіл

    Фільтр, який обмежував пошук опублікованими продуктами, зник, і відповідь це підтверджує.

  9. Дотягніться до іншого столу

    Читати кожен товар погано; читання таблиць, яких пошук ніколи не мав на увазі, ще гірше. Боб використовує UNION , щоб додати рядки з іншої таблиці до результатів, вибираючи ту саму кількість стовпців, яку повертає запит продукту.

  10. Сховище облікових даних у результатах пошуку

    Рядки, які повернулися, взагалі не є продуктами.

Охоплення стандартів безпеки

OWASP API Top 10

  • API8:2019 Injection

CWE

  • CWE-74 Improper Neutralization of Special Elements in Output ('Injection')

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security