参考:
https://www.cnblogs.com/2ha0yuk7on/p/16880528.html
![](https://img-blog.csdnimg.cn/img_convert/6d3284878310ca8a0c1ffcbb49655b15.png)
第一种方式未经过预编译,理论上存在sql注入;
第二、三种方法经过编译。
![](https://img-blog.csdnimg.cn/img_convert/b964ae784973ec4d634d4b734ffe8712.png)
在测试类下测试payload为
t' or 1=2 union select * from t_user where id = 10#
确实如预期查询到了结果。
但是在尝试堆注入
t' or 1=2 ; select * from t_user where id like '%10
![](https://img-blog.csdnimg.cn/img_convert/47b40b62054a4f37f33e9d02be8f0380.png)
拼接成了:select * from t_user where username like '%t' or 1=2 select * from t_user where id like '%10%'
但是报类型错
for the right syntax to use near 'select * from t_user where id like '%10%'' at line 1
是因为不能识别分号吗?不是。
![](https://img-blog.csdnimg.cn/img_convert/d20c4e6efed5eeb4718bed00e45ba0d8.png)
尝试在select标签中写删除语句,发现进行成功删除
既然如此,若能够执行多条语句,就可扩大破坏范围。
![](https://img-blog.csdnimg.cn/img_convert/04975aa831284e33a5288b30dd6542a9.png)
尝试多条delete语句,和刚刚的多个select是同一个报错。
网上找到方法:
![](https://img-blog.csdnimg.cn/img_convert/cffcd9edba8f5324aac25938ee0a3523.png)
?allowMultiQueries=true
多个参数用&&分割
尝试了一下,成功了。
![](https://img-blog.csdnimg.cn/img_convert/4d371e6103d56fdc52b3b2f0286b1915.png)
![](https://img-blog.csdnimg.cn/img_convert/22f4f9f8da110d1fd77ac34526a70ab3.png)
也就是说,当服务器设置为allowMultiQueries才可以进行堆注入。
待办:思考是否有其他方式扩大成果。