如何通过HTTP标头进行XSS

如何通过HTTP标头进行XSS,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在某些情况下,未正确清除在应用程序的HTTP标头之一中传递的信息,并将其输出到请求的页面中的另一端或另一端,从而导致XSS情况。

但是不幸的是,一旦攻击者无法让受害者在实际的XSS攻击中编辑自己的HTTP标头,那么只有在攻击者的有效载荷仍然以某种方式存储的情况下,才能利用这些情况。

我们可能想到的第一种情况是经典的情况:我们可以控制的HTTP标头中的某些信息被存储在数据库中,并随后在同一页面,应用程序中的其他任何地方甚至在另一个不可访问的系统中检索到

练习:

https://brutelogic.com.br/lab/header.php

我们所有的请求标头都以JSON格式显示在此处。这是一种推断,在现实世界中,它可能只出现其中的一种或两种。这只是为了简化代码,因为代码是一种单行代码(PHP),可以轻松重现:

<?= json_encode(getallheaders())。” \ n”;

如下所示,在命令行中使用带有-i标志的curl,它向我们显示了响应的HTTP标头以及JSON构成我们的请求标头。

如何通过HTTP标头进行XSS

由于我们在此博客中使用的WAF提供了最后一个标头“ x-sucuri-cache”,因此我们需要在URL中添加一些内容来避免缓存,因为该标头的值为“ HIT”,这意味着它即将到来从WAF的缓存中。

如何通过HTTP标头进行XSS

成功,响应中反映了我们的虚拟标头对“ Test:myValue”。让我们更改“避免缓存字符串”以发出另一个请求,否则下一个将返回带有“ lololol”字符串的最后一个缓存响应。

如何通过HTTP标头进行XSS

提出了另一个请求(在“ date”标题处检查时间),但似乎没有什么区别。这是因为缓存基于MISS-MISS-HIT方案,因此下一个将起作用。

如何通过HTTP标头进行XSS

该URL将保持中毒状态,直到缓存过期。

我们在以下页面*享了类似的练习:

https://brutelogic.com.br/lab/welcome.php

小#XSS锻炼你!https://t.co/y7vB13iP8U提示:使用自定义URL。

它的工作原理很像我们刚才解释的那样。XSS所需要的只是猜测入口点。

该页面的源代码如下,因此我们可以轻松地找到解决方案。

如何通过HTTP标头进行XSS


#hack2learn


看完上述内容,你们掌握如何通过HTTP标头进行XSS的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!