mysql - sql報(bào)錯(cuò)原因?
問題描述
發(fā)現(xiàn)一個(gè)正在維護(hù)的老系統(tǒng)的基于orderBy的sql注入漏洞,準(zhǔn)備驗(yàn)證一下,
我先執(zhí)行這個(gè)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
但是當(dāng)我執(zhí)行這個(gè)帶update語句的sql時(shí)報(bào)錯(cuò)了:
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
報(bào)錯(cuò)
<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>
我應(yīng)該如何讓他執(zhí)行update?
問題解答
回答1:主體是select的時(shí)候,里面是不能update的,否則執(zhí)行不了的,mybatis這種注入我試過,<select>里執(zhí)行update直接報(bào)錯(cuò),注入不了
相關(guān)文章:
1. java - Oracle如何獲取去重結(jié)果集中某一條數(shù)據(jù)的下一條數(shù)據(jù)2. 致命錯(cuò)誤: Class ’appfacadeTest’ not found3. dockerfile - 為什么docker容器啟動(dòng)不了?4. python - 數(shù)據(jù)無法插入到mysql表里5. android - Apk 中找不到r類文件6. javascript - 求正則表達(dá)式的寫法7. javascript - 小程序跳轉(zhuǎn)失敗?8. npm install -g browser-sync這個(gè)之后出錯(cuò) 還有人嗎 我都感覺沒人回答問題了9. python - pyspider的分布式運(yùn)行成功,2臺(tái)slave跑,但是時(shí)間并沒有縮短問題?10. angular.js - 用requireJS模塊angularjs代碼時(shí)遇到一些問題
