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. react-native 启动Android项目失败2. linux - nginx出现recv() failed (104: Connection reset by peer)3. javascript - 导出多条数据的时候,如何动态的赋值id?4. java - 使用solrj创建索引时遇到的奇怪问题?5. node.js - vue-resource,如何改变响应格式?6. python - 用ffmpeg采集视频,用terminate没法结束进程7. django - nginx无法使用80端口(它会自动跳转到nginx的欢迎界面),其他端口可以使用8. nginx - 关于vue项目部署到ngnix后出现的问题9. 一个阿里云的服务器,可以部署两个javaweb项目吗?两个项目域名不同10. node.js - nodejs+express+vue

网公网安备