【发布时间】:2011-06-09 03:10:55
【问题描述】:
<?php
setcookie('test', "test\r\n<script>alert(1)</script>");
echo 1;
但事实证明 PHP 会自动进行编码:
Set-Cookie: test=test%0D%0A%3Cscript%3Ealert%281%29%3C%2Fscript%3E
这是否意味着无法在 PHP 中重现 HTTP response splitting?
【问题讨论】:
-
即使是过时的 php 版本也会过滤所有 header 和 setcookie 调用。为什么不直接输出带有 echo 的 script 标签呢?
-
@mario,请查看我上面提供的链接。
-
那又如何呢?它没有解释 your 问题的目的。否则答案很简单:是的,在当前的 php 版本中不可重现。维基百科文章用一整段来解释这一点。
-
@mario ,整个http响应拆分都在header中完成,而
echo只在body中输出东西跨度> -
如果可能通过弄乱字符串编码来实现。 (即 UTF-7 和 UTF-8 混合)
标签: php security http-headers exploit