【发布时间】:2016-10-03 23:32:42
【问题描述】:
在编写访问超全局变量的类时,我刚刚认识到 php 可能出于安全原因正在从超全局变量中删除分号。
例如将 cookie 值设置为 <?php phpinfo(); ?> 之类的值时
我可以看到一个看起来像 Array ( [cookie] => <?php phpinfo() [?>] => ) 的变量转储,看到包含分号的字符串被分成两个或修剪值直到第一次出现分号。
现在问题来了。
如何让完整的字符串通过?
因为我已经“控制”了传递的变量,所以我想记录一个例如使用unpack("H*",$booboostr) 对任意有效载荷进行十六进制转储。
所以这是问题二。
如何为输入创建十六进制表示?
提前感谢您的任何提示。 问候
【问题讨论】:
-
Cookie 需要 URL 编码。
-
所以在尝试读取/传递它时使用
urlencode($_COOKIE["cookie"])之类的东西会奏效吗? -
分号在 cookie 中有特殊的含义,用于将值与域、路径等选项分开。
-
@MarcBredt 也用于分隔 cookie:
cookie1=value1; cookie2=value2 -
不清楚你在这里做什么。你为什么首先将文字
<?php放入 cookie 中?
标签: php inject superglobals