首页 科技内容详情
2022年世界杯南美洲预选赛赛程(www.9cx.net):剖析针对 HTTP/2 协议的差异步攻击(中)

2022年世界杯南美洲预选赛赛程(www.9cx.net):剖析针对 HTTP/2 协议的差异步攻击(中)

分类:科技

网址:

反馈错误: 联络客服

点击直达

USDT交易平台

U交所(www.usdt8.vip),全球頂尖的USDT場外擔保交易平臺。

,


H2.TE通过标头名称注入

在守候PulseSecure宣布补丁的同时,Atlassian实验了几个修复程序。第一个不允许在标头值中使用换行符,但未能过滤标头名称。这很容易被行使,由于服务器允许在标头名称中使用冒号,这在HTTP/1.1中是不能能实现的。


H2.TE 通过请求行注入

最初的修复程序也没有过滤伪标头,导致请求行注入破绽。行使这些很简朴,只要可视化注入发生的位置,并确保获得的HTTP/1.1请求有一个有用的请求行:


修复程序的最后一个破绽是一个典型的错误,即阻止' r\n',而不是阻止' n'自己,后者险些总是被行使。

Desync-Powered 请求隧道

接下来,让我们来看看一些不那么显著但仍然危险的器械。在这项研究中,我注重到由于缺乏一定的破绽知识而忽略了差异步破绽。接下来,我将探讨破绽发生原理,以及缓解措施。

每当前端吸收到请求时,它必须决议是通过现有毗邻将其路由到后端,照样确立到后端的新毗邻。前端接纳的毗邻重用战略对你能够乐成启动哪些攻击有很大影响。

大多数前端很愿意通过任何毗邻发送任何请求,从而实现我们已经看到的跨用户攻击。然而,你会发现你的前缀只会影响来自你自己 IP 的请求。发生这种情形是由于前端为每个客户端 IP 使用与后端的单独毗邻。这有点穷苦,但你通常可以通过缓存攻击间接攻击其他用户来解决该问题。

其他一些前端在来自客户端的毗邻和到后端的毗邻之间强制执行一对一的关系。这是一个更严酷的限制,然则通例的缓存攻击和内部标头泄露手艺仍然适用。

当前端选择从不重用与后端的毗邻时,攻击就会变得异常具有挑战性。此时发送直接影响后续请求的请求是不能能的:


这就只剩下一个行使原语:请求隧道。这种原语也可以由H2C走私等替换方式发生,但本节将重点讨论差异步驱动的隧道。

隧道确认

检测请求隧道很容易,通常的超时手艺事情正常。第一个真正的挑战是确认破绽,你可以通过发送一系列请求并查看早期请求是否影响后期请求来确认通例请求走私破绽。不幸的是,这种手艺总是无法确认请求隧道,因此很容易将破绽误以为是误报。

我们需要一种新简直认手艺,即简朴地走私一个完整的请求,然后看看你是否获得两个响应:


不幸的是,此处显示的响应现实上并未告诉我们此服务器易受攻击!毗邻多个响应正是 HTTP/1.1 keep-alive 的事情原理,以是我们不知道前端是否以为它正在向我们发送一个响应(而且容易受到攻击)照样两个响应(而且是平安的)。幸运的是,HTTP/2很好地解决了这个问题。若是你在HTTP/2响应正文中看到HTTP/1标头,你就会发现自己是一个差异步:


隧道视野(Tunnel vision)

隧道视野效应:一小我私人若身处隧道,他看到的就只是前后异常狭窄的视野。 由于第二个问题,这种方式并不总是有用。前端服务器通常使用后端响应上的 Content-Length 来决议从套接字读取若干字节。这意味着纵然你可以向后端发出两个请求,并从中触发两个响应,前端也只将第一个不太有趣的响应转达给你。

在以下示例中,由于突出显示了 Content-Length,以橙色显示的403响应从未转达给用户:

2022年世界杯南美洲预选赛赛程www.9cx.net)实时更新比分2022年世界杯南美洲预选赛赛程数据,2022年世界杯南美洲预选赛赛程全程高清免费不卡顿,100%原生直播,2022年世界杯南美洲预选赛赛程这里都有。给你一个完美的观赛体验。


Bitbucket(一家源代码托管网站,接纳Mercurial和Git作为漫衍式版本控制系统,同时提供商业设计和免费账户)很容易挖掘到破绽,经由4个多月的频频起劲,我完全靠运气找到了一个解决方案。终端返回的响应太大,导致Burp Repeater稍微滞后,以是我决议将我的方式从POST切换到HEAD来缩短它。这现实上是要求服务器返回响应标头,但省略了响应正文:


果真,这导致后端只服务响应标头,包罗未流传正文的Content-Length标头!这使得前端太过读取并提供对第二个走私请求的部门响应:


因此,若是你嫌疑存在盲请求隧道破绽,请实验 HEAD,看看会发生什么。由于套接字读取的时间敏感特征,它可能需要几回实验,而且你会发现读取快速提供的走私响应更容易。这意味着走私无效请求更适合检测:


走私无效请求也会让后端关闭毗邻,阻止意外响应行列攻击的可能性。请注重,若是目的仅易受隧道攻击,则响应行列攻击是不能能的,因此你无需忧郁。有时,当 HEAD 失败时,其他方式(如 OPTIONS、POST 或 GET)会起作用。我已经将这种手艺添加到HTTP Request Smuggler作为检测方式。

隧道行使:预测内部标头

请求隧道使你可以使用前端完全未处置的请求到达后端,最显著的行使路径是行使它绕过诸如路径限制之类的前端平安规则。然则,你经常会发现没有任何相关规则可以绕过。幸运的是,另有第二种选择。

前端服务器通常会注入用于要害功效的内部标头,例如指定用户登录的身份。由于前端检测并重写它们,直接行使这些标头的实验通常会失败。你可以使用请求隧道绕过此重写并乐成走私内部标头。

不外有一个问题,攻击者通常看不到内部标头,而且很难行使你不知道名称的标头。为了辅助解决这个问题,我刚刚宣布了一个对Param Miner的更新,它增添了通过请求隧道预测内部标头名称的支持。只要服务器的内部标头在Param Miner的wordlist中,而且在服务器的响应中引起可见的差异,Param Miner就应该检测到它。

隧道行使:泄露内部标头

不存在于 Param Miner 的静态词表中或在网站流量中泄露的自界说内部标头可能会逃避检测。通例请求走私可用于使服务器将其内部标头泄露给攻击者,但这种方式不适用于请求隧道。

幸运的是,若是你可以通过 HTTP/2 在标头中注入换行符,那么另有另一种发现内部标头的方式。经典的差异步攻击依赖于让两个服务器对请求正文的竣事位置发生分歧,然则使用换行符,我们可以让服务器对正文的最先位置发生分歧!

为了获得bitbucket使用的内部标头,我发出了以下请求:


在降级之后,它看起来是这样的:


你能看到我做了什么吗?前端和后端都以为我发送了一个请求,但他们对正文从那里最先感应疑心。前端以为's=cow'是标头文件的一部门,以是在此之后插入内部标头。这意味着后端最终将内部标头视为我发送到 Wordpress 搜索功效的 's' POST 参数的一部门,并将它们反射回来:


在 bitbucket.org 上接见差其余路径会导致我的请求被路由到差其余后端,并泄露差其余标头:


由于我们只触发来自后端的单个响应,因此纵然请求隧道破绽是随机的,该手艺也能正常事情。

隧道行使:缓存攻击

最后,若是星星是对齐的,你也允许以使用隧道来举行更壮大的种种 Web 缓存攻击。此时你需要一个场景,通过 H2.X desync 获得请求隧道,HEAD 手艺有用,而且存在缓存。这将允许你使用 HEAD 通过夹杂和匹配随便标头和正文确立的有害响应来攻击缓存。

经由一番挖掘,我发现获取 /wp-admin 会触发一个重定向,该重定向反映了 Location 标头内的用户输入,而纰谬其举行编码。就其自己而言,这是完全无害的 - Location 标头不需要 HTML 编码。然而,通过将它与来自 /blog/404 的响应标头配对,我可以诱骗浏览器来出现它,并执行随便的JavaScript:


通过使用这种手艺,我在一个显著无用的破绽上挖掘了6个月后,获得了对bitbucket.org上每个页面的持久控制权。

本文翻译自:https://portswigger.net/research/http2
  • 新2代理手机管理端(www.22223388.com) @回复Ta

    2021-09-13 00:00:17 

    免费足球贴士网(www.zq68.vip)是国内最权威‘wei’的足球赛事报道、预【yu】测平台。免费提供赛事‘shi’直【zhi】播,免费足球‘qiu’贴士,免费足球【qiu】推介,免费专家贴士,免费足球推荐,最专业的足球心水网。前排围观。

  • 澳5彩票开户(a55555.net) @回复Ta

    2021-09-17 00:00:07 

    新2平台出租rent.22223388.com

    皇冠运营平台(rent.22223388.com)是皇冠(正网)接入菜宝钱包的TRC20-USDT支付系统,为皇冠代理提供专业的网上运营管理系统。系统实现注册、充值、提现、客服等全自动化功能。采用的USDT匿名支付、阅后即焚的IM客服系统,让皇冠代理的运营更轻松更安全。

    眼睛看酸了

发布评论