如果路由使用$ _SERVER [“REQUEST_URI”并爆炸“/”,如何启动XSS

时间:2014-01-23 20:07:58

标签: php security xss

我的意思是:

http://kjventura.com/2011/11/make-pretty-urls-with-php-url-routing/

我在我的网站上使用这个系统(开发阶段)。网址如:

site.com/tag/lorem

例如我在网页上输入“lorem”到h1标签。

但是如何用这个URl方案启动简单的alert()?我没有逃避任何事情(故意)

1 个答案:

答案 0 :(得分:0)

由于$_SERVER['REQUEST_URI']包含请求行中显示的未更改的URI,因此可以传递的字符取决于URI路径中允许的字符,更准确地说是path segment

segment       = *pchar
pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"

pct-encoded percent-encoded octet无保留以及 sub-delims 定义如下:< / p>

unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
            / "*" / "+" / "," / ";" / "="

当您在HTML元素的内容中进行注入时,这些允许的字符不足以进行跨站点脚本攻击<h1>…</h1>。您至少需要<才能创建开始标记。

但是,如果要解码百分比编码的八位字节,则可以传递任何字符。