thinkphp5 sql注入


thinkphp5 sql注入&信息泄露

漏洞危害

信息泄露&不能子查询的(鸡肋)sql注入

影响版本

5.0.13<=ThinkPHP<=5.0.15 、 5.1.0<=ThinkPHP<=5.1.5

复现

直接访问是这样

image-20211026111543241

爆出用户名密码

index.php?ids[]=1&ids[]=2

image-20211026111723255

使用updatexml报错注入来回显敏感信息

index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1

image-20211026112047944

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

image-20211026112755952

如果将这里的user()替换为其他子查询语句就会报错,师傅的解释是

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

参考文章

ThinkPHP5 SQL注入漏洞 && PDO真/伪预处理分析


文章作者: l0odrd
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 l0odrd !
  目录