ThinkPHP5.0.9SQL注入分析
虽然有点鸡肋但是思路还是值得学习,首先写个控制器,这个Id一定要大写I
<?php
namespace app\index\controller;
class Index
{
public function index()
{
$id = input("id/a");
$data = db("users")->where("Id","in",$id)->select();
dump($data);
}
}
给出payload?id[0,updatexml(0,concat(0xa,user()),0)]=1之后开始调试分析
我们首先进入where函数,跟进parseWhereExp,发现是参数绑定的不是重点
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定](https://file.cfanz.cn/uploads/png/2022/10/26/17/UHE8O683Qe.png)
之后我们进入select函数,跟进发现也是参数绑定的部分
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_02](https://file.cfanz.cn/uploads/png/2022/10/26/17/9146TQYQ3M.png)
接下来我们跟进
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_xml_03](https://file.cfanz.cn/uploads/png/2022/10/26/17/QAM6SZ61DF.png)
只有这两个是有效函数
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_04](https://file.cfanz.cn/uploads/png/2022/10/26/17/RN7V488c3P.png)
继续跟进
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_xml_05](https://file.cfanz.cn/uploads/png/2022/10/26/17/TRD6247456.png)
直接跳过了
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_php_06](https://file.cfanz.cn/uploads/png/2022/10/26/17/K799T2e89J.png)
到我们的parseWhere了
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_07](https://file.cfanz.cn/uploads/png/2022/10/26/17/Ub1YU5HfPe.png)
这个主要是获取数据库当中字段类型
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_php_08](https://file.cfanz.cn/uploads/png/2022/10/26/17/2N211af1CI.png)
接下来我们继续跟进parseKey
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_php_09](https://file.cfanz.cn/uploads/png/2022/10/26/17/cbbR44E4U8.png)
我们继续跟进
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_10](https://file.cfanz.cn/uploads/png/2022/10/26/17/96AfIe8671.png)
华点TP函数用错了,无关紧要
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_11](https://file.cfanz.cn/uploads/png/2022/10/26/17/220f0Ad997.png)
注意这里的参数拼接,就是我们的利用点,完全没有过滤
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_12](https://file.cfanz.cn/uploads/png/2022/10/26/17/d01CD763N2.png)
继续往下
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_13](https://file.cfanz.cn/uploads/png/2022/10/26/17/XP6LO5E3e4.png)
最终返回
`Id` IN (:where_Id_in_0,updatexml(0,concat(0xa,user()),0))
之后返回
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_xml_14](https://file.cfanz.cn/uploads/png/2022/10/26/17/4b2G6X9I47.png)
我们接着跟进
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_参数绑定_15](https://file.cfanz.cn/uploads/png/2022/10/26/17/70V1KCW987.png)
我很懵逼,没有执行过程啊!!!却执行了,复现分析完毕,至于为什么执行了,希望有知道的师傅带带
![在这里插入图片描述 [PHP]ThinkPHP5.0.9SQL注入分析_xml_16](https://file.cfanz.cn/uploads/png/2022/10/26/17/229eOT2L45.png)










