Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trang web đã bị tấn công thông qua SQL Injection

Có vẻ như tấn công tràn . Họ UNION -ed với truy vấn hiện tại của bạn. thay thế tất cả %20 của bạn với (khoảng trắng) vì nó được mã hóa url mang lại:

=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-

chia nhỏ nó ra:

  1. =-999.9 sắp kết thúc truy vấn hiện tại của bạn
  2. 0x31303235343830303536NULL - chúng chỉ khớp với số cột trong truy vấn hiện có của bạn. Nếu bạn có SELECT * FROM users users có 4 cột, UNION cũng phải có 4 cột. Do đó, họ chỉ sử dụng `giá trị NULL để điền các cột đó.
  3. sự nhầm lẫn thực sự là trong CONCAT() . Chúng đang kết hợp 126, 39, tên cơ sở dữ liệu dưới dạng giá trị hex, 39 và 126
  4. -- là một bình luận mysql - nó bỏ qua phần còn lại của truy vấn của bạn sau

Đánh giá về cuộc tấn công này, tôi nghi ngờ rằng bạn không gói dữ liệu đầu vào trong mysql_real_escape_string() , cho phép bị tấn công để nhảy ra khỏi truy vấn của bạn và thực thi truy vấn của riêng chúng.

Xem owasp.org để biết thêm thông tin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa chính đa cột MySQL

  2. Làm thế nào để sử dụng kiểu int / long không dấu với Entity Framework?

  3. Có thể chèn dữ liệu vào dạng xem MySQL không?

  4. thay đổi định dạng ngày mặc định truy vấn laravel sql

  5. Làm thế nào để chuyển đổi một chuỗi thành hệ thập lục phân trong MySQL - HEX ()