Mysql
 sql >> база данни >  >> RDS >> Mysql

Намерих „ИЛИ 1=1/* sql инжекция в моята база данни с бюлетини

'OR 1=1 е опит да се направи заявка успешна, независимо какво
/* е опит за стартиране на многоредов коментар, така че останалата част от заявката се игнорира.

Пример би бил

SELECT userid 
FROM users 
WHERE username = ''OR 1=1/*' 
    AND password = ''
    AND domain = ''

Както можете да видите, ако трябваше да попълните полето за потребителско име, без да избягвате ' без значение какви идентификационни данни, които потребителят предава в заявката, ще върне всички потребителски идентификатори в системата, вероятно предоставяйки достъп на нападателя (евентуално администраторски достъп, ако администраторът е първият ви потребител). Също така ще забележите, че останалата част от заявката ще бъде коментирана поради /* включително реалния ' .

Фактът, че можете да видите стойността във вашата база данни, означава, че тя е избягала и тази конкретна атака не е успешна. Трябва обаче да проверите дали са били направени други опити.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли някаква sql-заявка за проверка дали стойността съществува или не в таблицата на db

  2. Laravel:SQLSTATE[HY000] [2054] Сървърът поиска метод за удостоверяване, неизвестен на клиента

  3. Търсене в масив от публикации в стойност на колона, разделена със запетая

  4. Изпратете формуляр CodeIgniter и AJAX

  5. Как да създадете „двустранен“ уникален индекс на две полета?