您的位置:首頁技術文章
文章詳情頁

mysql - sql報錯原因?

瀏覽:83日期:2022-06-13 10:08:51

問題描述

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

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

SELECT sysitem_item.item_id FROM sysitem_item `sysitem_item` ORDER BY (selectcasewhen(1=1)then1else(select depositfrom sysuser_user_deposit)end)=1 ASC LIMIT 20 OFFSET 0

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

SELECT sysitem_item.item_id FROM sysitem_item `sysitem_item` ORDER BY (selectcasewhen(1=1)then1else(updatesysuser_user_depositsetdeposit=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?

問題解答

回答1:

主體是select的時候,里面是不能update的,否則執行不了的,mybatis這種注入我試過,<select>里執行update直接報錯,注入不了

相關文章:
国产综合久久一区二区三区