注册 登录
  • 优秀软件的作用是让复杂的东西看起来简单@Grady Booch (UML创始人之一)

Gruyere之XSS上(三)

渗透测试 Sxx 491次浏览 4123字 0个评论

跨站脚本攻击(XSS)在2017 OWASP Top 10 排行第三,可见它的危险程度也是挺高的。那么本章节分为上下两部分,对于XSS进行一个详细的剖析。


跨站脚本攻击(XSS

跨站脚本攻击(XSS)是允许攻击者将代码(通常为HTML或JavaScript)注入到不受攻击者控制的网站内容中的一种漏洞。当受害者查看此页面时,注入的代码将在受害者的浏览器中执行。因此,攻击者可以绕过浏览器的同源策略,并窃取受害者与相关网站相关的私人信息。

XSS分为三种类型:反射型XSS存储型XSSDOM XSS

以下主要为反射型XSS和存储型XSS。

反射型XSS攻击中,攻击者在请求本身(通常是URL),并且当服务器在响应中逐字插入攻击错误的转义清除时,会发生漏洞。受害者通过浏览攻击者创建的恶意URL来触发攻击。

存储型XSS攻击中,攻击者将XSS攻击存储在应用程序中(例如,在代码段中),并且受害者通过浏览服务器上的页面来触发攻击,这些页面时通过不正确的转义或清除存储的数据来触发攻击。

 更多细节

要了解如何发生这种情况:假设URL:https://www.google.com/search?q=flowers 返回包含HTML片段的页面

<p>Your search for 'flowers' //您搜索的是'花'
returned the following results:</p> //返回以下结果:

也就是说,查询参数的值q逐字插入到Google返回的页面中。如果www.google.com没有做任何验证或转义q字符的话,攻击者可以制作一个如下所示的链接:

https://www.google.com/search?q=flowers+%3Cscript%3Eevil_script()%3C/script%3E

并诱骗受害者点击此链接。当受害者加载此链接时,以下页面将在受害者的浏览器中呈现:

<p>Your search for 'flowers<script>evil_script()</script>' //您搜索的是'flowers<script>evil_script()</script>'
returned the following results:</p> //返回以下结果:

由于页面来自www.google.comevil_script()将被执行在www.google.com页面上,因此可以获得所有受害者浏览器的状态Cookies

请注意,受害者甚至不需要明确点击恶意链接。假设攻击者拥有www.evil.example.com并创建一个 <iframe>指向恶意链接的页面; 如果受害人访问www.evil.example.com,攻击也将被悄悄激活。


XSS挑战

通常,如果在其他用户查看页面时可以让JavaScript执行,就说明该网页可能存在XSS漏洞。当攻击者使用JavaScript的简单函数——alert()函数时,它会弹出一个弹出框,显示的是你作为参数传递的字符串。

你可能会认为插入警报消息(弹出框的现象)的危害程度不高,但是如果你注入的是其他恶意脚本,那就不是简单地弹出警告框了。没有必要为了攻击去注入任何特殊的字符。但如果你可以注入alert(1),那么你就可以使用任意脚本eval(String.fromCharCode(...))

你的任务是在Gruyere中找到XSS漏洞。你应该在URL和存储的数据中查找漏洞。由于XSS漏洞通常涉及未正确处理不受信任的用户数据的应用程序,因此常见的攻击方法是在随机文本中输入字段,并查看如何在响应页的HTML源中呈现。但在我们这样做之前,让我们尝试一些更简单的攻击。


文件上传XSS

Gruyere之XSS上(三)你可以在google-gruyere.appspot.com域上上传允许执行任意脚本的文件吗?

提示:

 

如何利用:

 

如何修复:


反射型XSS

有的浏览器已经内置了防范反射型XSS的攻击。也有的浏览器提供了“禁止脚本(NoScript)”的扩展功能来作为防范。但如果你使用这些浏览器或扩展程序进行测试时,则可能需要使用其他浏览器或临时禁用该扩展功能来执行这些攻击。

有点小矛盾。。。【摊手】

在编写这个代码实验室的时候,有两个具有防范反射型XSS攻击的浏览器,分别是 IE 和 Chrome 。为了解决这个问题,Gruyere 在IE的每个响应中自动包含了一个“X-XSS-Protection:0 ”的HTTP头来被识别,并且也会被未来的Chrome识别。(现在开发者版本号也可适用。)

如果你使用的是Chrome,可以通过输入以下命令之一来尝试使用--disable-xss-auditor标志启动它:

 

  • Windows:“C:\ Documents and Settings \ USERNAME \ Local Settings \ Application Data \ Google \ Chrome \ Application \ chrome.exe”--disable-xss-auditor
  • Mac:/ Applications / Google \ Chrome.app/Contents/MacOS/Google \ Chrome --disable-xss-auditor
  • GNU / Linux:/ opt / google / chrome / google-chrome --disable-xss-auditor

如果你使用带有“禁止脚本”扩展名的Firefox,请将google-gruyere.appspot.com添加到允许列表中。 如果仍然无法使XSS攻击工作,请尝试使用其他浏览器。

你可能会认为,如果浏览器防护XSS,你就不需要担心XSS了。事实上,浏览器保护并不完美,因为它不真正了解你的应用程序,因此可能会有一些聪明的黑客来规避这种保护的方法。真正的保护是在你应用程序中没有XSS漏洞。

Gruyere之XSS上(三)找到反射型XSS攻击。我们想要的是点击URL并执行一个脚本。

提示1:

提示2:

 

如何利用:

 

如何修复:

参考:Gruyere官网-part2

相关文章目录:

Gruyere之渗透学习简介(一)

Gruyere之账号注册(二)


T1op|T1op.com , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Gruyere之XSS上(三)
喜欢 (2)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(0)个小伙伴在吐槽