thinkphp5 sql注入&信息泄露
漏洞危害
信息泄露&不能子查询的(鸡肋)sql注入
影响版本
5.0.13<=ThinkPHP<=5.0.15 、 5.1.0<=ThinkPHP<=5.1.5
复现
直接访问是这样

爆出用户名密码
index.php?ids[]=1&ids[]=2

使用updatexml报错注入来回显敏感信息
index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1

另外存在信息泄露,还有pdo预编译的错误信息的数据库和的一些信息和账号密码,但是也连接上不,确认了开放了端口之后那应该是mysql没有配置外连

如果将这里的user()替换为其他子查询语句就会报错,师傅的解释是
预编译的确是mysql服务端进行的,但是预编译的过程是不接触数据的 ,也就是说不会从表中将真实数据取出来,所以使用子查询的情况下不会触发报错;虽然预编译的过程不接触数据,但类似user()这样的数据库函数的值还是将会编译进SQL语句,所以这里执行并爆了出来