首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML净化器(转换为&)能防止HTTP参数的污染吗?

HTML净化器(转换为&)能防止HTTP参数的污染吗?
EN

Security用户
提问于 2018-11-17 08:21:16
回答 2查看 937关注 0票数 0

如果REST端点(http://example.com)读取p查询参数并将其传递给另一个端点:

代码语言:javascript
运行
复制
http_get("http://example.com/api2?p=".$_GET['p']); 

我将能够通过在phttp://example.com?p=a%26admin=true之后追加内容来利用该漏洞,这将导致它向http://example.com/api2?p=a&admin=true发出请求(服务器将%26解码为& ),如果/api2端点读取admin参数,则会导致攻击。

但是,如果我在$_GET['p']上使用D11,它将将&转换为&,这将打破攻击,除非api2读取amp;admin (在实践中不太可能)。

这是否意味着&逃逸到&中将有效防止攻击?那么,为什么此页&HPP_TEST呢?

EN

回答 2

Security用户

发布于 2018-11-17 09:20:40

HTTP参数污染是为了绕过服务器或WAF中的参数验证而操作URL的过程。例如,它是通过再次添加一个参数来完成的,即将查询字符串foo=1&bar=2添加到foo=1&bar=2&bar=bad-value

请注意,受污染的URL仍然是有效的URL,甚至可能是这样的,例如,使用具有相同字段名的多个输入字段的web表单。因此,任何类型的HTTP参数污染保护都需要知道实际需要什么样的URL或参数。

HTML净化器的用例完全不同:在某些服务器生成的HTML中包含之前,先对用户提供的HTML进行净化。HTML净化器不知道应用程序上下文中的有效URL应该是什么样子,因此无法帮助防止HTTP参数污染。

但是使用它实际上会使问题变得更糟:例如,如果URL的查询字符串有参数foo=1&bar=2,将其转换为foo=1&bar=2将导致D3,这将导致提取参数amp;bar=2而不是预期的bar=2

票数 2
EN

Security用户

发布于 2018-11-17 10:55:13

OWASP警告寻找&HPP_TEST的原因是它是客户端 hpp漏洞的症状。您所描述的攻击针对服务器端 hpp。这是两件完全不同的事情。

那么什么是客户端hpp呢?考虑一下,如果我给您发送了一个链接,如:

www.example.com?name=avery%26action=delete

现在,站点将为该链接生成html。例如,它可能有依赖于参数的标记。如果该站点不容易受到攻击,它可能会返回一些无害的东西,例如

View

但是,如果该站点易受攻击,它可能会返回html,例如:

View

View

所以所发生的是服务器被操纵来创建一个有额外参数的链接。现在,如果您像往常一样使用www.example,您可能会单击该链接,发现您被欺骗而删除了自己的数据。OWASP基本上是警告您检查您的服务器是否从URL参数创建这种类型的HTML。

至于使用HTML净化器作为一种防止服务器端hpp攻击的方法是否安全,我会说,是的,它将适用于您的一个情况,但它并不是一个很好的解决方案,因为它意味着您将永远无法创建任何需要多个参数的函数。最好是正确的URL编码和输入验证。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/197877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档