XSS的深入分析

什么是xss漏洞

XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

XSS攻击有哪些危害

1.盗取各类用户帐号及权限。(如机器登录帐号、用户网银帐号、各类管理员帐号)
2.控制网站数据,包括增删改查的操作。
3.XSS的非法跨站请求。(如:非法转账、非法下单、、发送电子邮件、利用管理员身份提权挂马、控制肉机网站发起攻击等)
4.容易形成持久化攻击,长期控制网站业务。
5.利用跨站攻击形成蠕虫病毒并传播。
6.非法控制网站,控制后可用于钓鱼、伪装、跳转、挂广告等一系列挂马行为。

xss自我理解

XSS跨站脚本,是一种Web安全漏洞,有趣是是他并不像SQL注入等攻击手段攻击服务端,本身对Web服务器没有危害,攻击的对象是客户端,使用浏览器访问这些恶意地址的用户。

实例操作

下面用代码编写一个弹窗xss的网页XSS的深入分析

用PHP简单讲一下xss的危害

编写一个简单的表单信息
XSS的深入分析
XSS的深入分析
以上代码使用$_GET[‘name’]获取用户输入的name变量,然后使用echo输出在页面上。正常输入,应该显示我输入的内容在页面上。

下面我们改用JavaScript代码try一try啊。
XSS的深入分析
XSS的深入分析

最后我们来总结一下xss经常出现的地方

1.元素内容,如果元素待显示的内容中含有可执行js代码段,在页面被渲染时该代码段会被当做可执行代码执行,将会产生不可预知的后果;
2.元素属性,与元素内容相似,只是这里是对元素属性进行攻击,可以通过携带含有“"”的参数将元素属性标签提前关闭,然后后续内容通过绑定事件等方式攻击;
3.js代码段,一般为存储型XSS,指在执行系统js代码的时候使用了用户输入内容,可能会形成XSS攻击;

xss的类型分析

XSS的类型有反射性和存储型。
1.反射性指程序通过url取参时得到非法参数进行调用。
2.存储型指非法内容保存到数据库中,系统从数据库中获取到用户输入的非法内容进行调用。
相对而言,存储型XSS可能造成的危害会更大。

xss怎么预防呢

1.对“<”、“>”进行转义;
2.对“"”、“’”进行转义;
3.用户输入内容使用前进行JSON转义;

JSON是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。数据传输是我们在敲代码时,经常遇到的一个场景,前后端交互。给数据一个统一的格式有利于我们编写和解析数据。json,是一种数据格式,在与后端的数据交互中有较为广泛的应用。

4.进行过滤(分为黑名单和白名单两种);