Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Situs telah diretas melalui SQL Injection

Sepertinya serangan overflow . Mereka UNION -ed dengan kueri Anda yang ada. mengganti semua %20 . Anda dengan (spasi) karena urlnya disandikan menghasilkan:

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

pecahkan:

  1. =-999.9 baru saja mengakhiri kueri Anda saat ini
  2. 0x31303235343830303536 adalah NULL - mereka hanya cocok dengan jumlah kolom dalam kueri Anda yang ada. Jika Anda memiliki SELECT * FROM users dan users memiliki 4 kolom, UNION juga harus memiliki 4 kolom. Akibatnya, mereka hanya menggunakan `nilai NULL untuk mengisi kolom tersebut.
  3. kebingungan sebenarnya ada di CONCAT() . Mereka menggabungkan 126, 39, nama database sebagai nilai hex, 39, dan 126
  4. -- adalah komentar mysql - mengabaikan sisa kueri Anda setelah

Dilihat dari serangan ini, saya curiga Anda tidak membungkus input di mysql_real_escape_string() , yang memungkinkan penyerang melompat keluar dari kueri Anda dan mengeksekusi kueri mereka sendiri.

Lihat owasp.org untuk informasi lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkah saya memprediksi seberapa besar indeks Zend Framework saya? (dan beberapa Q cepat:s)

  2. Memeriksa sumber daya hasil MySQL yang valid

  3. Apakah menutup koneksi mysql itu penting?

  4. Cara mendapatkan 2 item terbaru per kategori dalam satu pilihan (dengan mysql)

  5. GALAT 1067 (42000):Nilai default tidak valid untuk 'created_at'