Blind XSS

简单翻译总结,以作交流。博主水平有限,出现错误还望大家能够指正。

原文:https://www.acunetix.com/blog/articles/blind-xss/
原标题:Blind XSS: The Ticking Time Bomb of XSS Attacks

翻译: Blind XSS:XSS攻击的定时炸弹

什么是Blind XSS?

Blind XSS 是 cross site scripting (XSS)攻击的一个方向,当攻击者在网页上“盲目地”(原文为:“blindly”,特地用了引号)部署一系列恶意代码,这些网页可能会将代码保存到一个特定的地方(比如说数据库中,或者日志文件中)。然后,在不知道任何细节的情况下,比如:这些payload会在哪里结束,又或者是否被执行,何时被执行,攻击者等待着这些 payload 从存储中被取出并呈现在由用户加载的web页面上。

因此,不像大部分的XSS攻击:非持久型的,依靠由攻击者在web表单或 http 请求中输入的数据所生成的即时响应页面的XSS攻击方式;Blind XSS 是一种持久型的XSS,依靠目标web页面的代码中的漏洞,允许恶意代码插入到web控件中,被服务器存储到数据库或者网站设置文件中。这些恶意代码将被作为HTML响应页面的一部分向其他用户提供服务,而不会被检测。

博主总结:
Blind XSS,即类似于XSS盲打,在不明确是否存在XSS的情况下,对于web页面中可能存在的存储型XSS的地方都插入payload,攻击者不了解插入的payload具体去了哪里,只需要等待这些payload中有部分被成功执行,就已经成功了,能够达到某种目的。

————– 余下部分,如有需要,再行翻译 ———————-

Blind XSS 的常见目标

大多数Blind XSS的常见目标是那些具有用户输入且可以保存到之后其他人能查看的某些地方——如:登录表单,日志查看器,客户服务应用程序,异常处理器,论坛 / 留言板,返回表单,聊天窗口等的网页。

典型的 Blind XSS 攻击

Blind XSS 目标 #1: 登录表单

登录表单经常从网页接收输入的用户名,并将他保存到一个之后可以被查看的日志文件中。因此,一次在登录表单的“用户名”模块输入恶意代码后的失败的登录,将会导致服务器将输入保存到日志中,这样日志中就将恶意代码当做“用户名”保存。攻击者可以执行一些这样的登录尝试,为了将恶意代码传入到日志数据库中或日志文件中。
这之后,如果登录表单所属的网站(或网络应用)的管理员,在检查当天的日志时,如果这些日志会在一个网页上呈现的话,那么恶意代码就可能被执行,并向攻击者返回他所需要的信息。
在这个场景下的典型目标是需要身份验证,Web管理控制台设备等的基于Web的应用。典型的危害范围从窃取信任证书到越权访问应用(程序)的数据,和拒绝服务。
典型的用户目标是管理员和与安全性相关的目标。

Blind XSS 目标 #2: 论坛 / 留言板

类似于之前的场景,攻击者可以在论坛或留言板的主题标题中插入恶意代码。最常见的,服务器会将他们提交的数据保存到数据库中,并且存储的信息对其他人可见,比如版主等。
在这种场景下,这恶意脚本代码在发到普通用户时可能会被杀毒,从而导致恶意代码失效。可是,当一个论坛的版主加载论坛的web管理页面时,就像一个线程流行报告(like a thread popularity report,),比如,未杀毒的主体标题可能会被加载。因此,攻击者的脚本将会被执行,返回窃取的信息,重定向用户,或者拒绝服务攻击,例如通过调用在管理接口界面的代码停止论坛。
典型的用户目标是那些能从web管理界面加载论坛内容,执行管理操作任务和安全配置相关的目的的论坛或留言板的版主。
Typical user targets are moderators of forums or message boards, who load forum content from management web sessions in order to perform administrative tasks and the aim is again, security related.

检测和防御 Blind XSS 攻击

最好的治疗就是提前预防;因此对于Blind XSS 攻击来说,最好的防御收到就是确保你的网站和网络应用没有漏洞。实现的最有效的方法就是通过网页开发人员去审查代码并确保任何用户输入都经过过滤杀毒。如果这一步没有完成,用户输入在被保存到存储区或向用户浏览器提供服务之前不被任何脚本标签过滤,那么这将是一个风险。因此,你的网站或者web应用可能会存在XSS漏洞,包括Blind XSS攻击。

永远不要相信用户提供的数据是一个好的编程习惯。为了排除所有的风险,你必须在用户输入被存储之前进行过滤杀毒;同时,作为第二道防线,当数据被从存储中读取时,在它被送到用户的浏览器之前也需要进行过滤杀毒。

博主注:过滤杀毒原文单词是“ sanitization”,就是对恶意代码进行检测过滤。

接下来:你需要一些专业化的工具来执行无害的渗透测试,除了检测XSS漏洞之外,还包括检测那些可能在web应用(如在论坛中)扫描中不会暴露的Blind XSS漏洞的能力。如果你不接触代码,或者没有时间去检查上千上万行代码,你可以使用这样的工具去判定你的网站或web应用是否存在Blind XSS 攻击漏洞,如果存在,那么你就需要联系你的软件供应商。

在没有代码审计的情况下探测Blind XSS的困难,来自于这种攻击方式不依靠第三方web服务器技术或网络浏览器;漏洞可以被公布或者你能扫描并打上补丁。这种攻击利用开发者在编写你的网站或web应用中的代码时引入的漏洞。因此,即使你的网站实施了最新的技术比如HTML 5或者你确认你的网站服务器已经打满了补丁,但你的web应用可能还是存在XSS漏洞。此外,Blind XSS 就更难被发现,因为payload可能会在与它插入的地方完全不同的web应用中被执行。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS (Cross-Site Scripting) 是一种常见的安全漏洞,攻击通过注入恶意脚本来攻击网站用户。为了防止XSS攻击,可以使用XSS过滤器来对用户输入的数据进行处理和过滤。 XSS过滤器的主要目标是检测和阻止恶意脚本的注入。它可以通过以下几种方式来实现: 1. 输入验证: 对用户输入的数据进行验证,确保只接受符合预期格式和类型的数据。例如,如果一个输入字段只允许数字,那么任何非数字的输入都应该被拒绝。 2. 输出转义: 对从数据库或其他来源检索到的数据进行适当的转义处理,确保在将其插入到HTML页面时不会被解释为可执行的脚本代码。常见的转义包括将特殊字符如<、>、&等替换为对应的HTML实体编码。 3. 内容安全策略(CSP): 使用CSP可以限制页面中可以加载和执行的资源,从而减少XSS攻击的可能性。CSP可以配置允许加载的外部脚本、样式表和图片等资源,同时禁止内联脚本和eval()等危险函数的使用。 4. HttpOnly Cookie: 将敏感信息存储在HttpOnly Cookie中,这样可以防止客户端的脚本访问和修改Cookie内容,减少XSS攻击的影响范围。 5. 使用安全的编程语言和框架: 选择使用经过安全性测试的编程语言和框架,它们通常提供了内置的安全机制和过滤器,帮助减少XSS攻击的风险。 综合上述措施可以加强网站的安全性,但是XSS攻击的方法和技术不断演变,所以保持对最新安全威胁的了解和及时更新防护措施也是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值