运行spring boot项目(mybatis),
运行之后,报错:

### SQL: SELECT  id, ...email,username  FROM xx_user     WHERE (username = ?)
### Cause: java.sql.SQLSyntaxErrorException: Unknown error 1146
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown error 1146

抓包,发现
确定数据库:
在这里插入图片描述

在这里插入图片描述
自己在这个数据库里查询,碰到一样的问题,看来并不是sql语句的语法问题,而是没有这个表。可能是数据库弄错了。

之前已经执行了sql语句创建了数据库,但是那个数据库跟这个程序连接的并不一样。

于是更改一下jdbc.properties文件中的连接的数据库名,重新启动。

但是又报了这个错,

com.mysql.cj.exceptions.CJException: Unknown error 1044

发现是某用户没有访问某数据库的权限,于是重新授予这个数据库给这个用户,再次启动。
然后登录:

这次终于登录成功了:
在这里插入图片描述
在这里插入图片描述

然后执行查询的时候又发现这个:

java.sql.SQLSyntaxErrorException: Unknown error 1054

字段不存在,原来是请求某个请求时,
在这里插入图片描述
会执行这个SQL语句:
在这里插入图片描述

而我们现在并没有这些字段:
于是手动创建它,并插入数据(不然哪儿来的sqli)

CREATE TABLE IF NOT EXISTS `sys_function`(`id` INT UNSIGNED AUTO_INCREMENT,`dsource` VARCHAR(100), `createtime` VARCHAR(100), `isedit` VARCHAR(100), `name` VARCHAR(100), `tname` VARCHAR(100), `menuid` VARCHAR(100), `isadd` VARCHAR(100), `isdelete` VARCHAR(100), `type` VARCHAR(100), `isexport` VARCHAR(100), PRIMARY KEY (`id`));

INSERT INTO sys_function(id,dsource,createtime,isedit,name,tname,menuid,isadd,isdelete,type,isexport) values (1,'1','1','1','1','1','1','1','1','1','1');

create table `sys_dsource`(`id` INT UNSIGNED AUTO_INCREMENT,         `status` VARCHAR(100),         `dbname` VARCHAR(100),         `comment`VARCHAR(100), PRIMARY KEY (`id`));

insert into sys_dsource(id, status, dbname, comment) values(1, '1', '1', '1');

这下就有值了:
在这里插入图片描述

使用这个请求:

pageSize=10&pageNumber=1&order=desc&sort=if(1=1,sleep(1),1)

发现只sleep了1s
看看流量里的sql语句是啥:
在这里插入图片描述

参考:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐