前言


上一篇文章写了关于 WEB 安全方面的实战,主要是解决 SQL 盲注的安全漏洞。这篇文章本来是要写一篇关于怎样防治 XSS 攻击的,可是想来想去,还是决定先从理论上认识一下 XSS 吧。下一篇文章,再深入研究怎样防治的问题。


概念


究竟什么是 XSS 攻击呢?XSS 攻击。全称是“跨网站脚本攻击”(Cross Site Scripting),之所以缩写为 XSS,主要是为了和“层叠样式表”(Cascading Style Sheets。CSS)差别开,以免混淆。


XSS 是一种常常出如今web应用中的计算机安全漏洞,它同意恶意web用户将代码植入到提供给其他用户使用的页面中。比方这些代码包含HTML代码和client脚本。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

XSS 是针对特殊 Web 网站的客户隐私的攻击,当客户具体信息失窃或受控时可能引发彻底的安全威胁。

大部分网站攻击仅仅涉及两个群体:黑客和 Web 网站,或者黑客和client受害者。

与那些攻击不同的是,XSS 攻击同一时候涉及三个群体:黑客、client和 Web 网站。XSS
攻击的目的是盗走client cookies,或者不论什么能够用于在 Web 网站确定客户身份的其它敏感信息。手边有了合法用户的标记,黑客能够继续扮演用户与网站交互。从而冒充用户。


举例来说。在对一个大型公司的调查中表明,利用 XSS 攻击窥视用户的信用卡号码和私有信息是可能的。

这是通过利用 Web 网站的訪问特权,在受害者(client)浏览器上执行恶意的 JavaScript 代码来实现的。

这些是很有限的 JavaScript 特权,除了与网站相关的信息,一般不同意脚本訪问其它不论什么内容。

重点强调的是。尽管
Web 网站上存在安全漏洞,可是 Web 网站从未受到直接伤害。可是这已经足够让脚本收集 cookies。而且将它们发送给黑客。



分析


假设某个怀有恶意的人(攻击者)能够强迫某个不知情的用户(受害者)执行攻击者选择的client脚本,那么便会发生跨网站脚本攻击。“跨网站脚本”这个词应该属于用词不当的情况,由于它不仅与脚本有关,并且它甚至不一定是跨网站的。

所以,它就是一个在发现这样的攻击时起的一个名字。并且一直沿用至今。从如今開始,我们将使用它常见的缩写名称“XSS”。


XSS 攻击的过程涉及下面三者:

  • 攻击者
  • 受害者
  • 存在漏洞的站点(攻击者能够使用它对受害者採取行动)

在这三方之中,唯独受害者会实际执行攻击者的代码。

站点不过发起攻击的一个载体。一般不会受到影响。

能够用多种方式发起 XSS 攻击。比如。攻击者可通过电子邮件、IM 或其它途径向受害者发送一个经过经心构造的恶意 URL。当受害者在 Web 浏览器中打开该 URL 的时侯,站点会显示一个页面并在受害者的计算机上执行脚本。


那么。XSS 漏洞是什么样的呢?

作为一名 Web 开发者或測试人员。您肯定知道 Web 应用程序的技术基础是由 HTTP 和 HTML 组成的。HTTP 协议是 HTML 的传输机制,可使用代码设计 Web 页面布局和生成页面。

假设 Web 应用程序接受用户通过 HTTP 请求(如 GET 或 POST)提交的输入信息。然后使用输出 HTML 代码在某些地方显示这些信息,便可能存在 XSS 漏洞。以下是一个最简单的样例:

1. Web 请求例如以下所看到的:

    GET http://www.somesite.com/page.asp?pageid=10&lang=en&title=Section%20Title
 
2. 在发出请求后,server返回的 HTML 内容包含:
 
    <h1>Section Title</h1>

能够看到,传递给“title”查询字符串參数的用户输入可能被保存在一个字符串变量中而且由 Web 应用程序插入到 <h1> 标记中。通过提供输入内容。攻击者能够控制 HTML。

3. 如今。假设网站没有在server端对用户输入加以过滤(由于总是能够绕过client控件),那么恶意用户便能够使用很多手段对此漏洞加以滥用:

攻击者能够通过摆脱 <h1> 标记来注入代码:

    <scrīpt>alert(‘XSS%20attack’)</scrīpt">http://www.somesite.com/page.asp?pageid=10&lang=en&title=Section%20Title</h1><scrīpt>alert(‘XSS%20attack’)</scrīpt>

这个请求的 HTML 输出将为:

    <h1>Section Title</h1><scrīpt>alert(‘XSS attack’)</scrīpt>

即便是这个最简单的样例,攻击者也能够利用此连接完毕数不清的事情。



结束语


看完这篇文章。相信你已经了解了什么是 XSS 攻击,而这种攻击在我们的生活中也不是没有遇到过,不知道你发现没有。偶尔我们的邮箱中就会有一些不明的 URL,而这些 URL 非常有可能就是伪装好的攻击脚本。当然,我们要有自我保护的意识。不要轻易的点击这些链接之类的东东。只是,最重要的还是要知道他们攻击的原理。了解了原理。防止这些漏洞就不远了。



WEB安全实战(二)带你认识 XSS 攻击的更多相关文章

  1. Web安全系列(三):XSS 攻击进阶(挖掘漏洞)

    前言 在前些章节 (web安全系列(一):XSS 攻击基础及原理)以及(Web安全系列(二):XSS 攻击进阶(初探 XSS Payload))中,我详细介绍了 XSS 形成的原理以及 XSS 攻击的 ...

  2. web安全系列(一):XSS 攻击基础及原理

    跨站脚本攻击(XSS)是客户端脚本安全的头号大敌.本文章深入探讨 XSS 攻击原理,下一章(XSS 攻击进阶)将深入讨论 XSS 进阶攻击方式. 本系列将持续更新. XSS 简介 XSS(Cross ...

  3. DVWA 黑客攻防演练(十二) DOM型 XSS 攻击 DOM Based Cross Site Scripting

    反射型攻击那篇提及到,如何是"数据是否保存在服务器端"来区分,DOM 型 XSS 攻击应该算是 反射型XSS 攻击. DOM 型攻击的特殊之处在于它是利用 JS 的 documen ...

  4. 什么是xss攻击

    概述: XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列 表,然后向联 ...

  5. 响应性web设计实战总结(二)

    响应性web设计实战总结(二) 阅读目录 背景知识: Gulp-less安装及配置如下 对响应性web总结,之前总结过2篇文章:可以看如下: http://www.cnblogs.com/tugenh ...

  6. WEB安全实战(五)XSS 攻击的第二种解决方式(推荐)

    序 说到 XSS 攻击,前边已经有两篇文章在讲这个事了,这次又拿出来说,主要是针对近期工作中的一些新的问题.那么之前是怎么解决问题的呢?为什么又要换解决方式?以下就具体的跟大家分享一下. 旧方案 公司 ...

  7. Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)

    什么是 XSS Payload 上一章我谈到了 XSS 攻击的几种分类以及形成的攻击的原理,并举了一些浅显的例子,接下来,我就阐述什么叫做 XSS Payload 以及从攻击者的角度来初探 XSS 攻 ...

  8. 手把手和你一起实现一个Web框架实战——EzWeb框架(二)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(二)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 上一篇文章我们实现了框架的雏形,基本地 ...

  9. web 安全问题(二):XSS攻击

    上文说完了CSRF攻击,本文继续研究它的兄弟XSS攻击. 什么是XSS攻击 XSS攻击的原理 XSS攻击的方法 XSS攻击防御的手段 什么是XSS攻击 XSS攻击全名(Cross-Site-Scrip ...

随机推荐

  1. ajax --- Ajax跨域请求保证同一个session的问题

    我们知道,根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务 ...

  2. centos 7.3 配置vnc 服务 图形界面登录

    1.检查系统是否有安装tigervnc-server软件包 rpm -qa |grep vnc 默认的系统未装tigervnc-server软件包 2.安装tigervnc-server软件包 yum ...

  3. dubbo+zookeeper+springMVC +maven

    pom:                    <dependency>             <groupId>com.github.sgroschupf</grou ...

  4. 快速定位java系统的线上问题--转

    原文地址:http://m.blog.csdn.net/article/details?id=43376943 前言:我们的场景并没有像BAT等大型互联网公司里的系统那么复杂,但是基本上也有一定的规模 ...

  5. SQL Server 2000数据库备份与恢复图解

    SQL Server 2000数据库备份与恢复图解   四个步骤:1.安装sql server 2000 2.数据库设置: 3.建立自动备份 4.还原数据库  具体图片见附件 本文出自 "李 ...

  6. 963B:Destruction of a Tree

    You are given a tree (a graph with n vertices and n - 1 edges in which it's possible to reach any ve ...

  7. Ubuntu系统下的多路径软件 DM Multipath 配置。

    Ubuntu系统下的多路径软件是操作系统自带的 DM Multipath工具.------------------------------------------------------------- ...

  8. DEDECMS教程:列表页缩略图随机调用

    如果用过DEDECMS的朋友应该都知道,有些模板列表页面需要用到缩略图,调用内容中的缩略图可以使用系统自带的脚本调用第一张图片.但是,并不是我们所有的内容里都有图片,有时候第一张图片也不一定是适合尺寸 ...

  9. jmeter名词解释之聚合报告

    新浪围脖>@o蜗牛快跑o    温馨提示: 1. tps(吞吐量)表征系统性能,系统的好坏能够用这个评估 2. 90%Line是满足需求响应时间的重要指标,假设用户需求说是响应时间不小于5s,那 ...

  10. 測试password强度

    <html> <!--激情在最后面.请看最后面红色字 这是是个计算password强度的实例 网上有非常多这种样例 只是呢,都不怎么好 这是我写的一个完整的效果,能够通用, new一 ...