PHP中非法参数名问题分析
Contents
Warning
This article was last updated on 2023-10-27, the content may be out of date.
基础
tip: PHPversion <8.0
源代码:
|
|
可以看见这里做了一个传参,参数名为D T.
我们可以试一下传参
.
号做了转义变成了_
同样的我们举例子·
|
|
明显可以知道,我们无法传入我们需要的参数
那么此时要用到一个phpversion<8的特性:当传入的参数中含有[
时,[
会被转义成_
但是后面的参数就不会被转义
也就是说
分析
首先,从php官网查看
可以看见这里对转义写的很明白了
所以我们在php8中可以预见
示例
|
|
这时候,需要你去传入D_T_这个参数,这个时候可以看见
$query = $_SERVER[‘QUERY_STRING’];
对传入的参数也做了限制,无法直接传入_
所以我们就可以利用php的特性
简单的举个CTF中的例子
|
|
所以我们的playload就是http://127.0.0.1/1/1.php?D T[=1&b=phpinfo();