简述xss跨站脚本攻击

XSS又叫CSS跨站脚本攻击,指的是攻击者向web页面插入恶意脚本代码,当用户浏览该网页时,嵌入其中的代码会被触发,从而达到攻击者目的。
xss攻击方式较为被动,故而实战中比较容易被外在因素干扰,所以常有人忽略其危害性。技术虽老,却危害甚大,常年高居owasp榜单前三。

国外的MySpace曾经发生过一个事件,一名叫samy的人利用xss漏洞写出了世界上第一只跨站脚本蠕虫,短短二十小时传染一百万用户,最后导致该站瘫痪。

跨站攻击,脚本千万条,因为html允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面植入一个恶意脚本代码,当用户访问到有恶意脚本的网页,便会给攻击者可乘之机。

xss目前最流行的三种:反射型,存储型,dom型。

后两者可以理解为在必经之路埋地雷,踩到就炸。而反射型xss主要是自己构造xss漏洞网页或者寻找目标之外的有漏洞的网页,通过生成链接发送给受害人,受害人通过访问链接而触发脚本,从而受到殴打。

**xss漏洞原理:**了解xss触发条件就得先从html超文本标记语言开始,我们浏览的网页都是基于html创建的,如一个超链接:

<a href="http://www.baidu.com">百度</a>  

xss利用原理就是往html中注入脚本代码,假如一段js脚本代码,在没有被转义字符的情况下,攻击者只需要保持一套完整的脚本即可。

防范原理:
1、 输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法以及业务规则。
2、 输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码,建议对所有字符进行编码而不仅局限于某个子集。
3、 明确指定输出的编码方式:不要允许攻击者为你的用户选择编码方式(如ISO 8859-1或 UTF 8)。
4、 注意黑名单验证方式的局限性:仅仅查找或替换一些字符(如"<" ">“或类似"script"的关键字),很容易被XSS变种攻击绕过验证机制。
5、 警惕规范化错误:验证输入之前,必须进行解码及规范化以符合应用程序当前的内部表示方法。请确定应用程序对同一输入不做两次解码。对客户端提交的数据进行过滤,一般建议过滤掉双引号(”)、尖括号(<、>)等特殊字符,或者对客户端提交的数据中包含的特殊字符进行实体转换,比如将双引号(”)转换成其实体形式”,<对应的实体形式是&lt ; (&lt与分号不空格)。

攻击者常用的插入姿势有javascript,vbscript,activex或者flash以攻击用户,随着时代飞速发展,攻击者也变得更加先进,这意味着,仅仅靠部署这些常用的xss预防实践也越来越吃力,这意味着保护和预防过程必须从底层开始并且持续提升。

发布了16 篇原创文章 · 获赞 1 · 访问量 5974

猜你喜欢

转载自blog.csdn.net/weixin_44398914/article/details/94589817