解决sqlmap对排序字段进行SQL注入
问题出现场景:查询模块分页排序。点击图片箭头可升序,降序。使用分页排序的技术为:mybatisplus-plus+pagehelper
![在这里插入图片描述](https://img-blog.csdnimg.cn/241ea90221d24863852a1764cd54e3a7.png#pic_center)
漏洞复现:通过sqlmap工具。对查询接口进行排序字段sql注入。发现可以获取数据库的用户信息。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d9dc4f4f0f734fe89c7d07cd5c283e9d.png#pic_center)
发现原因:通过打印日志发现。sqlmap会对排序字段orderField进行大量的SQL注入图片只是展示部分注入SQL。
![在这里插入图片描述](https://img-blog.csdnimg.cn/3fb8364150c44d62a18b15de4000c1b4.png#pic_center)
发现通过该SQL,一个字母一个字母对比获得数据库用户名字。然后发现项目里面存在的问题。排序SQL通过字符串拼接的。但是注入普通的SQL会报错。
![在这里插入图片描述](https://img-blog.csdnimg.cn/0a575a5824be414b9e24db68bd82a7f8.png#pic_center)
解决方案,对排序字段进行单独过滤处理。问题可以得到解决。
![在这里插入图片描述](https://img-blog.csdnimg.cn/803cec743edd4dd8974046e1982c4686.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/081597b0830d47a8aa6808b8707b5a50.png#pic_center)