06 Бер, 2023

Недостатня перевірка вхідних даних в додатках AJAX

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

AJAX розшифровується як "Асинхронний JavaScript і XML". і відноситься до групи методів веб-розробки, що використовуються для створення інтерактивних веб-додатків.

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

Отже, "Недостатня перевірка вхідних даних в додатках AJAX" відноситься до конкретної проблеми, яка може виникнути в веб-додатках, що використовують методи AJAX, коли користувальницький введення не перевіряється належним чином перед обробкою додатком. Ця вразливість може бути використана зловмисниками для порушення безпеки додатка і його даних.

Приклад уразливого коду на різних мовах програмування:


в JavaScript:

				
					// AJAX request to update user information
$.ajax({
  type: "POST",
  url: "update_user.php",
  data: {
    username: $("#username").val(),
    email: $("#email").val(),
    password: $("#password").val()
  },
  success: function(response) {
    // handle response
  }
});

				
			


У наведеному вище коді ім'я користувача, адресу електронної пошти та пароль користувача виходять з вхідних даних форми і відправляються на сервер з допомогою AJAX-запиту. Однак дані, що вводяться користувачем не перевіряються перед відправкою на сервер, що може дозволити зловмиснику впровадити шкідливий код або дані.

• В PHP:

				
					// Get user input from AJAX request
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

// Update user information in database
$query = "UPDATE users SET email='$email', password='$password' WHERE username='$username'";
$result = mysqli_query($conn, $query);

if ($result) {
  // Send success response
  echo "User information updated successfully";
} else {
  // Send error response
  echo "Error updating user information";
}

				
			


У цьому PHP-коді користувальницький введення виходить із запиту AJAX і використовується для оновлення інформації користувача в базі даних. Однак перевірка вхідних даних, що могло б дозволити зловмиснику впровадити SQL-код запиту виконати довільні команди бази даних.

• в Python:

				
					# Get user input from AJAX request
username = request.POST.get('username')
email = request.POST.get('email')
password = request.POST.get('password')

# Update user information in database
query = "UPDATE users SET email='%s', password='%s' WHERE username='%s'" % (email, password, username)
cursor.execute(query)

if cursor.rowcount > 0:
  # Send success response
  return HttpResponse("User information updated successfully")
else:
  # Send error response
  return HttpResponse("Error updating user information")

				
			


У цьому коді на Python користувальницький введення виходить із запиту AJAX і використовується для оновлення інформації користувача в базі даних. Однак вхідні дані не перевірені, що може дозволити зловмиснику впровадити SQL-код запиту виконати довільні команди бази даних.

Приклади використання Недостатньої перевірки вхідних даних в додатках AJAX

Атака з використанням міжсайтового скриптинга (XSS):

Припустимо, AJAX додаток дозволяє користувачам розміщувати коментарі на веб-сайті, і коментарі відображаються динамічно за допомогою запитів AJAX. Зловмисник може скористатися уразливістю Недостатньої перевірки вхідних даних, впровадивши шкідливий код в полі введення коментаря, наприклад:

				
					<script>
alert('XSS attack!');
</script>

				
			

Коли коментар публікується і відображається на веб-сайті, код скрипта виконується в браузері користувача, що потенційно дозволяє зловмисникові вкрасти конфіденційну інформацію, перехопити сеанси користувача або виконати інші шкідливі дії.

SQL-ін'єкційна атака:

Припустимо, AJAX додаток дозволяє користувачам шукати товари по назві, і пошуковий запит виконується з використанням AJAX-запиту. Зловмисник може скористатися уразливістю Недостатньої перевірки вхідних даних, ввівши SQL-код в поле вводу пошуку, наприклад:

				
					'; DROP TABLE products; --

				
			

Коли пошуковий запит буде виконаний, SQL-код буде виконуватися на сервері, потенційно дозволяючи зловмиснику видалити всю таблицю products з бази даних.

Методи підвищення привілеїв при недостатній перевірки вхідних даних в додатках AJAX

Перехоплення сеансу:

Якщо додаток використовує AJAX файли cookie або токени для управління сеансами користувача, зловмисник може скористатися уразливістю Недостатньої перевірки вводу, щоб вкрасти дійсний ідентифікатор сеансу або токен у іншого користувача, що дозволить йому видавати себе за цього користувача отримувати доступ до його облікового запису і даними.

Прямі посилання на об'єкти:

Якщо додаток використовує AJAX прямі посилання на об'єкти для доступу до ресурсів або функцій, зловмисник може скористатися уразливістю Недостатньої перевірки вхідних даних, щоб змінити посилання на об'єкт і отримати доступ до обмежених областях додатки.

SQL-ін'єкція:

Якщо додаток використовує AJAX SQL-запити для доступу до даних або виконання дій, зловмисник може скористатися уразливістю Недостатньої перевірки вхідних даних, щоб впровадити SQL-код, який змінює або отримує дані, до яких у них зазвичай немає доступу.

Підробка міжсайтових запитів (CSRF):

Якщо додаток використовує AJAX передбачувані або недостатньо випадкові токени для перевірки запитів, зловмисник може скористатися уразливістю Недостатньої перевірки вхідних даних для створення підробленого запиту, який, мабуть, походить від законного користувача, що дозволяє їм виконувати дії від імені користувача.

Віддалене включення файлів (RFI):

Якщо додаток AJAX включає видалені файли без належної перевірки, зловмисник може використовувати уразливість Недостатньої перевірки вхідних даних для включення шкідливого коду з віддаленого сервера, що дозволяє йому виконувати довільний код на сервері і отримувати доступ до обмежених областях додатки.

Загальна методологія та контрольний список з-за недостатньої перевірки вхідних даних в додатках AJAX

Методологія:

  1. Визначте поля введення додатка: Першим кроком є ідентифікація всіх полів введення в додатку AJAX, включаючи поля, які використовуються для користувача введення, параметри у запитах AJAX і приховані поля.

  2. Класифікуйте поля введення: Класифікуйте кожне поле вводу на основі його очікуваного типу тексту та формату. Наприклад, текстові поля, числові поля, поля дати, що випадають меню, прапорці та перемикачі.

  3. Виявлення потенційних вразливостей: Як тільки всі поля введення ідентифіковані та класифіковані, проаналізуйте кожне поле, щоб виявити будь-які потенційні проблеми, такі як відсутність перевірки вхідних даних, неправильна перевірка типу даних, недостатня перевірка довжини або діапазону і т. д.

  4. Перевірка на наявність вразливостей: Використовуйте методи автоматичного і ручного тестування для використання кожної виявленої уразливості, включаючи граничний тестування, нечітке тестування і тестування на проникнення.

  5. Тест на вплив вразливостей: Як тільки уразливості будуть виявлені і використані, протестуйте вплив кожної уразливості, включаючи можливість обходу контролю доступу, виконання довільного коду доступу до обмежених ресурсів і т. д.

  6. Документуйте і повідомляйте про результати: Документуйте всі уразливості та їх вплив разом з пропонованими стратегіями пом'якшення наслідків і повідомляйте про результати відповідним сторонам, таким як команда розробників або група безпеки.

  7. Перевірка виправлень: Як тільки з'являться повідомлення про уразливість, переконайтеся, що команда розробників усунула виявлені проблеми і що виправлення не призводять до появи будь-яких нових вразливостей.

Контрольний список:

  1. Визначте всі поля введення в додатку AJAX, включаючи поля, використовувані для користувача введення, параметри у запитах AJAX і приховані поля.

  2. Класифікуйте кожне поле вводу на основі його очікуваного типу тексту та формату.

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

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

  5. Перевірте вплив недостатньої перевірки вхідних даних, спробувавши обійти засоби контролю доступу або виконати довільний код через кожне поле вводу.

  6. Перевірте уразливості міжсайтового скриптинга (XSS), запровадивши шкідливий код в кожне поле введення і спостерігаючи, чи виконується код в браузері.

  7. Перевірте уразливості SQL-ін'єкцій, ввівши SQL-код в кожне поле введення і спостерігаючи, чи виконується код на сервері.

  8. Перевірте наявність вразливостей CSRF, створивши підроблений запит, який, мабуть, походить від законного користувача, і спостерігаючи, приймає додаток цей запит.

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

  10. Документуйте всі уразливості та їх вплив разом з пропонованими стратегіями пом'якшення наслідків і повідомляйте про результати відповідним сторонам, таким як команда розробників або група безпеки.

  11. Переконайтеся, що команда розробників усунула виявлені проблеми і що виправлення не призводять до появи будь-яких нових вразливостей.

Набір інструментів для використання недостатньої перевірки вхідних даних в додатках AJAX 

Автоматизовані інструменти:

  1. Burp Suite: Burp Suite - це інструмент тестування безпеки веб-додатків, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч інструментів, таких як веб-проксі, сканер і повторювач, які можна використовувати для автоматизації процесу тестування.

  2. ZAP (проксі-сервер атаки Zed): ZAP - це безкоштовний інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе такі функції, як перехоплює проксі-сервер, активне і пасивне сканування, а також різні модулі атаки.

  3. Netsparker: Netsparker - це автоматизований інструмент тестування безпеки веб-додатків, який може використовуватися для виявлення і використання вразливостей недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч параметрів сканування, таких як впровадження SQL, тестування XSS і CSRF, а також може ідентифікувати і тестувати кінцеві точки AJAX.

  4. AppScan: AppScan - це інструмент тестування безпеки веб-додатків, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч параметрів сканування, таких як впровадження SQL, тестування XSS і CSRF, а також може ідентифікувати і тестувати кінцеві точки AJAX.

  5. Arachni: Arachni - це безкоштовний інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч параметрів сканування, таких як впровадження SQL, тестування XSS і CSRF, а також може ідентифікувати і тестувати кінцеві точки AJAX.

  6. w3af: w3af - це безкоштовний інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч параметрів сканування, таких як впровадження SQL, тестування XSS і CSRF, а також може ідентифікувати і тестувати кінцеві точки AJAX.

  7. OWASP ZSC: OWASP ZSC - це безкоштовний інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч модулів атаки, таких як SQL-ін'єкція, XSS і тестування CSRF, а також може ідентифікувати і тестувати кінцеві точки AJAX.

  8. Sqlmap: Sqlmap - це безкоштовний інструмент тестування на проникнення з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч опцій для тестування SQL-ін'єкцій, включаючи автоматичне виявлення і експлуатацію вразливостей.

  9. Skipfish: Skipfish - це безкоштовний інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч параметрів сканування, таких як впровадження SQL, тестування XSS і CSRF, а також може ідентифікувати і тестувати кінцеві точки AJAX.

  10. BeEF: BeEF - це безкоштовна платформа для роботи з браузерами з відкритим вихідним кодом, яка може використовуватися для виявлення і використання вразливостей Недостатньої перевірки введення в додатках AJAX. Він включає в себе безліч модулів для використання вразливостей на основі браузера, таких як XSS і CSRF.

Ручні інструменти:

  1. Chrome Developer Tools: Chrome Developer Tools - це вбудований інструмент в браузері Google Chrome, який можна використовувати для виявлення і використання вразливостей недостатньої перевірки введення в додатках AJAX. Він включає в себе такі функції, як інспектор елементів, мережевий монітор і консоль для виконання JavaScript.

  2. Firefox Developer Tools: Інструменти розробника Firefox - це вбудований інструмент в браузері Mozilla Firefox, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки введення в додатках AJAX. Він включає в себе такі функції, як інспектор елементів, мережевий монітор і консоль для виконання JavaScript.

  3. OWASP Xenotix XSS Exploit Framework: OWASP Xenotix XSS Exploit Framework - це безкоштовний інструмент з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч модулів для тестування XSS уразливостей, таких як зберігається і відбитий XSS.

  4. OWASP Mutillidae: OWASP Mutillidae - це безкоштовний веб-додаток з відкритим вихідним кодом, яке можна використовувати для практичного використання вразливостей Недостатньої перевірки введення в додатках AJAX. Він включає в себе безліч вразливостей, які можуть бути використані, таких як SQL-ін'єкція, XSS і CSRF.

  5. Tamper Data: Tamper Data - це безкоштовний плагін для браузера, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки введення в додатках AJAX. Він дозволяє користувачам перехоплювати і змінювати HTTP / HTTPS запити і відповіді, що робить його корисним інструментом для тестування кінцевих точок AJAX.

  6. Hackbar: Hackbar - це безкоштовний плагін для браузера, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки введення в додатках AJAX. Він дозволяє користувачам виконувати користувальницькі команди JavaScript і SQL в браузері, що робить його корисним інструментом для тестування кінцевих точок AJAX.

  7. Sqlninja: Sqlninja - це безкоштовний інструмент тестування на проникнення з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч опцій для тестування SQL-ін'єкцій, включаючи автоматичне виявлення і експлуатацію вразливостей.

  8. Wfuzz: Wfuzz - це безкоштовний інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч параметрів сканування, таких як впровадження SQL, тестування XSS і CSRF, а також може ідентифікувати і тестувати кінцеві точки AJAX.

  9. Commix: Commix - це безкоштовний інструмент тестування на проникнення з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей Недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч опцій для тестування впровадження команд, включаючи автоматичне виявлення і експлуатацію вразливостей.

  10. Burp Intruder: Burp Intruder - це інструмент, що входить до складу Burp Suite, який можна використовувати для автоматизації тестування вразливостей недостатньої перевірки вхідних даних в додатках AJAX. Він включає в себе безліч опцій для налаштування корисних навантажень і параметрів атаки, що робить його корисним інструментом для тестування кінцевих точок AJAX.

Середній бал CVSS стек Недостатньої перевірки вхідних даних в додатках AJAX

Загальна система оцінки вразливостей (CVSS) - це стандартизована система, використовувана для оцінки серйозності вразливостей в системі безпеки. Оцінка CVSS заснована на кількох факторах, включаючи потенційний вплив уразливості і складність її використання.

Оцінка CVSS за уразливості з недостатньою перевіркою вхідних даних в додатках AJAX може змінюватись в залежності від конкретної уразливості і впливу, який вона може надати. Проте в цілому ці уразливості можна вважати високою або критичної серйозністю, оскільки вони можуть дозволити зловмисникам маніпулювати вхідними даними і виконувати потенційно шкідливий код на стороні сервера або клієнта.

Оцінка CVSS за уразливості з недостатньою перевіркою вхідних даних в додатках AJAX може варіюватися від 4,0 до 10,0, причому найвищі оцінки зазвичай присвоюються вразливостей, які легко використовувати і які роблять великий вплив на додаток або систему. Важливо відзначити, що оцінка CVSS - це всього лише один фактор, який слід враховувати при оцінці серйозності уразливості, і інші фактори, такі як ймовірність використання уразливості і потенційний вплив на організацію, також повинні братися до уваги.

Загальна перерахування слабких місць (CWE)

• CWE-20: Неправильна перевірка вхідних даних відноситься до неправильної перевірки вхідних даних, що може призвести до ряду проблем безпеки, включаючи переповнення буфера, ін'єкційні атаки та інші уразливості, які можуть бути використані зловмисниками для отримання несанкціонованого доступу до системи або порушення цілісності додатки.

• CWE-79: Неправильна нейтралізація вводу під час генерації веб-сторінки ставиться до нездатності належним чином нейтралізувати користувальницький введення при створенні веб-сторінок, що може призвести до атак з використанням ін'єкцій, таким як міжсайтовий скриптінг (XSS) і впровадження SQL. Ці атаки можуть дозволити зловмисникам виконати шкідливий код на стороні клієнта або сервера і поставити під загрозу цілісність програми.

• CWE-89: Неправильна нейтралізація спеціальних елементів, використовуваних в команді SQL, відноситься конкретно до неправильної нейтралізації спеціальних символів у командах SQL, що може призвести до атак з використанням SQL-ін'єкцій. Цей CWE часто використовується в додатках AJAX, які використовують динамічні SQL-запити для отримання або оновлення даних з бази даних.

• CWE-352: Підробка міжсайтових запитів (CSRF) відноситься до здатності зловмисників підробляти запити від імені користувачів, які увійшли у веб-додаток, часто використовуючи відсутність перевірки вхідних даних або елементів керування сеансом. Це може призвести до того, що зловмисники зможуть виконувати дії від імені користувача, такі як зміна налаштувань облікового запису або здійснення покупок.

• CWE-434: Необмежена завантаження файлу з небезпечним типом відноситься до здатності зловмисників завантажувати файли в веб-додаток, яке може бути використане для виконання шкідливого коду на стороні сервера або клієнта. Цей CWE часто використовується в додатках AJAX, які дозволяють користувачам завантажувати файли без належної перевірки вхідних даних і елементів управління фільтрацією.

• CWE-601: Перенаправлення URL на ненадійний сайт ('Відкрите перенаправлення') відноситься до здатності зловмисників перенаправляти користувачів на підозрілі веб-сайти, часто використовуючи відсутність перевірки вхідних даних параметрах URL, використовуваних додатком. Це може призвести до того, що користувачі будуть перенаправлені на фішингові сайти або сайти, на яких розміщені шкідливі програми.

• CWE-614: Конфіденційний файл cookie сеансу HTTPS без атрибуту 'Secure' відноситься до неправильної обробці сеансових файлів cookie у сеансах HTTPS, що може призвести до того, що зловмисники зможуть перехопити сеанс користувача та отримати несанкціонований доступ до додатка. Це може статися, коли файли cookie неправильно позначені як "безпечні", що може дозволити їм передаватися по незахищеним HTTP-з'єднань.

• CWE-794: Використання неправильних методів HTTP відноситься до використання неправильних методів HTTP, що може призвести до ряду проблем безпеки, включаючи CSRF, ін'єкційні атаки та інші уразливості, які можуть бути використані зловмисниками для отримання несанкціонованого доступу до системи або порушення цілісності додатки.

• CWE-918: Підробка запитів на стороні сервера (SSRF) відноситься до здатності зловмисників обманом змусити веб-додатки надсилати запити до інших систем в Інтернеті, часто використовуючи відсутність перевірки вводу або інших засобів контролю безпеки. Це може призвести до того, що зловмисники зможуть отримати несанкціонований доступ до конфіденційної інформації або виконати дії від імені програми.

• CWE-943: Неправильна нейтралізація спеціальних елементів в логіці запиту даних відноситься до неправильної нейтралізації спеціальних символів у запиті даних, що може призвести до атак з використанням ін'єкцій, таких як SQL-ін'єкція. Цей CWE часто використовується в додатках AJAX, які використовують динамічні запити до даних для вилучення чи оновлення даних з бази даних.

Помилки, пов'язані з недостатньою перевіркою вхідних даних в додатках AJAX

• CVE-2022-31041 – Open Forms - це додаток для створення і публікації смарт-форм. Відкриті форми підтримують завантаження файлів в якості одного з типів полів форми. Ці поля можуть бути налаштовані таким чином, щоб кінцеві користувачі могли завантажувати тільки певні розширення файлів (наприклад, тільки PDF / Excel / ...). Перевірка вхідних даних завантажених файлів недостатня у версіях 1.0.9 і 1.1.1. Користувачі можуть змінювати або видаляти розширення файлів, щоб обійти цю перевірку. Це призводить до завантаження на сервер файлів, які мають інший тип файлу, ніж зазначено в розширенні імені файлу. Ці файли можуть бути завантажені (вручну або автоматично) персоналом та / або іншими додатками для подальшої обробки. Таким чином, шкідливі файли можуть проникати у внутрішні / надійні мережі. Версії 1.0.9 і 1.1.1 містять виправлення для цієї проблеми. Як обхідного шляху шлюз API або рішення для виявлення вторгнень перед open-forms можуть сканувати і блокувати шкідливий контент до того, як він потрапить в додаток Open Forms.

• CVE-2022-1952 – Безкоштовний плагін для бронювання готелів, ресторанів і оренди автомобілів WordPress, випущений до версії 1.1.16, страждає від недостатньої перевірки вхідних даних, що призводить до довільної завантаженні файлу і подальшого віддаленого виконання коду. Ця проблема зачіпає дію AJAX, доступне для не автентифікованих користувачів. Список підтримуваних розширень файлів визначений, але не використовується на етапах перевірки.

• CVE-2022-0888 – Плагін Ninja Forms – File Uploads Extension WordPress вразливий для довільної завантаження файлів з-за недостатньої перевірки типу вхідного файлу, знайденого в ~/includes/ajax/controllers/uploads.php файл, який можна обійти, дозволяючи зловмисникам, які не пройшли перевірку автентичності, завантажувати шкідливі файли, які можуть бути використані для віддаленого виконання коду, у версіях 3.3.0 включно

• CVE-2021-42122 – Insufficient Input Validation in Web Applications operating on Business-DNA Solutions GmbH&#8217;s TopEase® Platform Version <= 7.1.27 on an object&#8217;s attributes with numeric format allows an authenticated remote attacker with Object Modification privileges to insert an unexpected format, which makes the affected attribute non-editable.

• CVE-2021-42121 – Insufficient Input Validation in Web Applications operating on Business-DNA Solutions GmbH&#8217;s TopEase® Platform Version <= 7.1.27 on an object&#8217;s date attribute(s) allows an authenticated remote attacker with Object Modification privileges to insert an unexpected format into date fields, which leads to breaking the object page that the date field is present.

• CVE-2021-42120 – Insufficient Input Validation in Web Applications operating on Business-DNA Solutions GmbH&#8217;s TopEase® Platform Version <= 7.1.27 on all object attributes allows an authenticated remote attacker with Object Modification privileges to insert arbitrarily long strings, eventually leading to exhaustion of the underlying resource.

• CVE-2021-42117 – Insufficient Input Validation in Web Applications operating on Business-DNA Solutions GmbH&#8217;s TopEase® Platform Version <= 7.1.27 allows an authenticated remote attacker with Object Modification privileges to insert arbitrary HTML without code execution.

Недостатня перевірка вхідних даних в додатках AJAX подвиги

  • SQL-ін'єкція: Це поширений експлойт, який виникає, коли зловмисники можуть впроваджувати SQL-команди веб-додатків, що використовують динамічні SQL-запити. Цей експлойт може бути використаний для вилучення або зміни конфіденційних даних у базі даних.

  • Міжсайтовий скриптінг (XSS): Цей експлойт виникає, коли зловмисники можуть впровадити шкідливий код на веб-сторінки, які генеруються додатком. Це може дозволити зловмисникам виконувати довільний код на стороні клієнта і поставити під загрозу цілісність програми.

  • Підробка міжсайтових запитів (CSRF): Цей експлойт виникає, коли зловмисники можуть підробляти запити від імені користувачів, які увійшли у веб-додаток. Це може дозволити зловмисникам виконувати дії від імені користувача, такі як зміна налаштувань облікового запису або здійснення покупок.

  • Уразливості при завантаженні файлів: Цей експлойт виникає, коли зловмисники можуть завантажувати файли в веб-додатки, які належним чином не перевіряють чи не фільтрують типи файлів. Це може дозволити зловмисникам виконувати шкідливий код на стороні сервера або клієнта.

  • Впровадження зовнішньої сутності XML (XXE): Цей експлойт виникає, коли зловмисники можуть впроваджувати шкідливі XML-дані в веб-додатки, що використовують протоколи на основі XML. Це може дозволити зловмисникам отримувати конфіденційні дані з програми або виконувати довільний код на стороні сервера.

  • Віддалене виконання коду (RCE): Цей експлойт виникає, коли зловмисники можуть виконати довільний код на стороні сервера веб-додатки. Це може дозволити зловмисникам отримати несанкціонований доступ до конфіденційних даних або виконувати дії від імені програми.

  • Підробка запитів на стороні сервера (SSRF): Цей експлойт виникає, коли зловмисники можуть обманом змусити веб-додатки надсилати запити до інших систем в Інтернеті. Це може дозволити зловмисникам отримати несанкціонований доступ до конфіденційної інформації чи виконувати дії від імені програми.

  • Відкрити перенаправлення: Цей експлойт виникає, коли зловмисники можуть перенаправляти користувачів на підозрілі веб-сайти, часто використовуючи відсутність перевірки вхідних даних параметрах URL, використовуваних додатком. Це може призвести до того, що користувачі будуть перенаправлені на фішингові сайти або сайти, на яких розміщені шкідливі програми.

  • Недоліки бізнес-логіки: Ці типи експлойтів виникають, коли зловмисники можуть маніпулювати логікою веб-додатків для отримання несанкціонованого доступу до конфіденційних даних або виконання дій від імені програми.

  • Порушена аутентифікація та управління сеансами: Ці типи експлойтів виникають, коли зловмисники можуть використовувати слабкі місця в механізми аутентифікації і управління сеансами, використовуваних веб-додатками. Це може дозволити зловмисникам отримати несанкціонований доступ до конфіденційних даних або виконувати дії від імені програми.

Практикуючись в тестуванні на Недостатня перевірка вхідних даних в додатках AJAX

Розуміння програми AJAX: Перед тестуванням важливо мати гарне уявлення про програму AJAX і його функції. Це допоможе вам визначити області, які можуть бути уразливі для проблем з перевіркою вхідних даних.

Визначення полів вводу: Знайдіть поля вводу в додатку, такі як поля пошуку, форми входу і реєстраційні форми.

Тест для перевірки правильності вхідних даних: Почніть з перевірки кожного поля вводу, щоб переконатися, що програма правильно перевіряє дані, що вводяться користувачем. Наприклад, спробуйте ввести неприпустимі символи, надто багато символів або enter, який не повинен бути прийнятий.

Тест на ін'єкційні атаки: Потім спробуйте впровадити шкідливий код поля введення, щоб перевірити, вразливе додаток для атак з використанням ін'єкцій, таких як впровадження SQL, міжсайтовий скриптінг (XSS) або впровадження XML external entity (XXE).

Перевірка на наявність вразливостей при завантаженні файлів: Якщо додаток дозволяє користувачам завантажувати файли, перевірте уразливості при завантаженні файлів, завантаживши файли з шкідливим кодом або файли з розширеннями, відмінними від очікуваних додатком.

Тест на CSRF: Перевірте наявність вразливостей CSRF, надіславши запити від імені користувача і перевіривши, чи перевіряє додаток справжність запитів.

Використовуйте інструменти: Використовуйте інструменти, такі як сканери вразливостей, для виявлення додаткових вразливостей в додатку.

Перевірте отримані результати: Після того як ви виявили уразливості, перевірте їх, протестувавши вручну і підтвердивши, що вони можуть бути використані.

Звіт та виправлення: Повідомляйте про будь-які виявлені вразливості власнику програми або розробнику і працюйте з ними над усуненням вразливостей.

Повторне тестування: Після усунення вразливостей повторно протестуйте додаток, щоб переконатися, що уразливості були усунені належним чином.

Для вивчення Недостатньої перевірки вхідних даних в додатках AJAX

Керівництво хакера веб-додатків: Ця книга охоплює широкий спектр вразливостей веб-додатків, включаючи проблеми з перевіркою вхідних даних, і включає практичні приклади і методи виявлення і використання цих вразливостей.

Керівництво по тестуванню OWASP: У цьому посібнику представлена комплексна методологія тестування веб-додатків на наявність вразливостей в системі безпеки, включаючи недостатню перевірку вхідних даних в додатках AJAX.

OWASP Топ-10: OWASP Top 10 - це список найбільш критичних ризиків безпеки веб-додатків, і в цей список включена недостатня перевірка вхідних даних в додатках AJAX.

Онлайн -Курси: Доступно безліч онлайн-курсів, присвячених безпеки веб-додатків, включаючи недостатню перевірку вхідних даних в додатках AJAX. Деякі приклади включають Udemy "Тестування на проникнення веб-додатків: від базового до середнього рівня" і Cybrary "Тестування на проникнення веб-додатків".

Сканери вразливостей: Такі інструменти, як OWASP ZAP, Burp Suite і Acunetix, можна використовувати для виявлення недостатньої перевірки вхідних даних в додатках AJAX та інших вразливостей веб-додатків.

Практика: Кращий спосіб дізнатися про недостатню перевірки вхідних даних в додатках AJAX - це попрактикуватися у виявленні і використанні цих вразливостей. Ви можете налаштувати свою власну тестову середу, використовуючи вразливі веб-додатки, такі як Damn Vulnerable Web Application (DVWA) або Mutillidae.

Вебінари та Конференції: Відвідуйте семінари і конференції, пов'язані з безпекою веб-додатків, щоб дізнатися про нові методи і передових методах виявлення і використання недостатньої перевірки вхідних даних в додатках AJAX. Прикладами можуть служити Black Hat, OWASP AppSec і DEF CON.

Книги з оглядом недостатньої перевірки вхідних даних в додатках AJAX

“Керівництво хакера веб-додатків: пошукd Використання недоліків безпеки" автор: Дафидд Штуттард і Маркус Пінто: У цій книзі розглядається широкий спектр вразливостей веб-додатків, включаючи проблеми з перевіркою введення в додатках AJAX.

"Веб-безпека для розробників: реальні загрози, практична захист" Малкольм Макдональд і Джеймс Д. Браун: У цій книзі представлений огляд загроз веб-безпеки, включаючи недостатню перевірку вхідних даних в додатках AJAX, і практичні рішення для захисту від них.

"Безпека веб-додатків, керівництво для початківців" Брайан Салліван і Вінсент Ллю: Ця книга містить безпека веб-додатків, включаючи недостатню перевірку вхідних даних в додатках AJAX, а також практичні поради щодо забезпечення безпеки веб-додатків.

"Злом сірої капелюхи: керівництво етичного хакера" Даніель Регаладо, Шон Харріс і Аллен Харпер: У цій книзі розглядається широкий спектр методів злому, включаючи використання недостатньої перевірки вхідних даних в додатках AJAX.

"Зламані веб-додатки: Секрети і рішення безпеки веб-додатків" автор: Джоел Скамбрей, Вінсент Ллю і Калеб Сіма: У цій книзі розглядаються ризики безпеки веб-додатків, включаючи недостатню перевірку вхідних даних в додатках AJAX, і пропонуються практичні рішення для захисту від них.

"Заплутана мережа: керівництво по забезпеченню безпеки сучасних веб-додатків" Міхал Залевські: У цій книзі докладно розглядаються проблеми безпеки веб-додатків, в тому числі недостатня перевірка вхідних даних в додатках AJAX, а також практичні поради щодо забезпечення безпеки веб-додатків.

"Уразливості веб-додатків: виявлення, використання, запобігання" автор: Стівен Палмер: У цій книзі розглядається широкий спектр вразливостей веб-додатків, включаючи недостатню перевірку вхідних даних в додатках AJAX, і даються практичні поради по їх виявленню і запобіганню.

"Атаки з використанням міжсайтових сценаріїв: експлойти XSS і захист" Сет Фоги, Єремія Гроссман і Роберт Хансен: У цій книзі докладно розглядаються атаки з використанням міжсайтових сценаріїв (XSS), у тому числі ті, які використовують недостатню перевірку вхідних даних в додатках AJAX, а також практичні поради щодо захисту від них.

"Безпека веб-додатків: повне керівництво по забезпеченню безпеки вашого додатки" Ендрю Хоффман: У цій книзі представлений огляд безпеки веб-додатків, включаючи недостатню перевірку вхідних даних в додатках AJAX, і практичні поради по забезпеченню безпеки веб-додатків.

"Безпечне кодування на C та C ++" Роберт С. Сикорд: У цій книзі розглядаються методи безпечного кодування для мов програмування C і C ++, включаючи недостатню перевірку вхідних даних в додатках AJAX, і даються практичні поради по розробці безпечних веб-додатків.

Список корисних навантажень Недостатня перевірка вхідних даних в додатках AJAX

  • Корисні навантаження SQL-ін'єкцій: це поширена атака, яка використовує недостатню перевірку вхідних даних у веб-додатках. Корисні навантаження SQL-ін'єкцій включають впровадження SQL-коду в поля введення для управління запитами до бази даних та отримання доступу до конфіденційної інформації.

  • Корисне навантаження міжсайтових сценаріїв (XSS): це ще одна поширена атака, яка використовує недостатню перевірку вхідних даних у веб-додатках. Корисні навантаження XSS включають впровадження шкідливого коду в поля введення для крадіжки сеансових файлів cookie або впровадження клієнтських скриптів.

  • Корисне навантаження при обході каталогів: дозволити зловмисникам доступ до файлів за межами кореневого каталогу Інтернету. Корисне навантаження обходу каталогів включає в себе маніпулювання полями введення для доступу до конфіденційних файлів або каталогів.

  • Корисне навантаження при включенні файлу: атаки використовують недостатню перевірку вхідних даних для виконання шкідливого коду на сервері. Корисне навантаження при включенні файлів включає в себе введення коду у поля введення для виконання на сервері.

  • Корисні навантаження для введення команд: атаки дозволяють зловмисникам виконувати довільні команди на сервері. Корисне навантаження впровадження команд включає в себе введення коду у поля введення для виконання на сервері.

  • Корисне навантаження для підробки міжсайтових запитів (CSRF): атаки використовують недостатню перевірку вхідних даних для виконання дій від імені користувача. Корисні навантаження CSRF включають в себе маніпулювання полями введення для виконання дій на сервері без відома користувача.

Як бути захищеним від недостатньої перевірки вхідних даних в додатках AJAX

  1. Перевірка вхідних даних: Перевіряйте всі вхідні дані, отримані від користувачів, включаючи вхідні дані з AJAX-запитів, щоб переконатися, що вони відповідають очікуваному формату і довжині. Використовуйте перевірку білого списку, щоб дозволити тільки затверджені символи і відхилити всі інші дані, що вводяться.

  2. Дезінфекція: Очистіть enter, щоб видалити всі потенційно шкідливі символи або код. Використовуйте перевірку чорного списку, щоб видалити всі символи, які, як відомо, є шкідливими.

  3. Використовуйте параметризрвані запити: Використовуйте параметризрвані запити при роботі з базами даних, щоб запобігти атаки з використанням SQL-ін'єкцій.

  4. Використовуйте безпечні методи кодування: Використовуйте методи безпечного кодування, включаючи дотримання стандартів та керівництв по кодуванню, а також виконання регулярних перевірок коду для виявлення і усунення вразливостей.

  5. Впровадження контролю доступу: Вбудуйте контроль доступу для обмеження доступу користувачів до конфіденційної інформації і функцій. Використовуйте принципи найменших привілеїв, щоб надавати доступ тільки тим користувачам, які його потребують.

  6. Використовуйте HTTPS: Використовуйте HTTPS для шифрування повідомлень між клієнтом і сервером, включаючи AJAX-запитів. Це допомагає запобігти перехоплення і підробку даних.

  7. Використовуйте брандмауери веб-додатків: Використовуйте брандмауери веб-додатків для моніторингу та фільтрації трафіку, а також для блокування відомих шаблонів і сигнатур атак.

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

Висновок

Недостатня перевірка вхідних даних в додатках AJAX це серйозна уразливість, яка може призвести до цілого ряду атак, включаючи міжсайтовий скриптінг, впровадження SQL і віддалене виконання коду. Ця вразливість виникає, коли додаток неправильно перевіряє дані, що вводяться користувачем, що може бути використана зловмисниками для впровадження шкідливого коду на додаток.

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

Необхідно регулярно проводити тестування і перевірку коду для виявлення і усунення вразливостей, а розробники повинні бути в курсі останніх рекомендацій та стандартів безпеки. Приділяючи належну увагу безпеці, розробники можуть створювати надійні і безпечні AJAX-додатки, що захищають від недостатньої перевірки вхідних даних і інших поширених вразливостей.

Інші Послуги

Готові до безпеки?

зв'язатися з нами