01
XSS跨站脚本介绍
跨站脚本(Cross-Site Scripting,XSS)是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的 。攻击者利用网站漏洞把恶意的脚本代码(通常包括html代码和客户端JAVAscript脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害者可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击 。
XSS跨站脚本攻击本身对Web服务器没有直接危害,它借助网站进行传播,使网站的大量用户受到攻击 。攻击者一般通过留言、电子邮件或其他途径向受害者发送一个精心构造的恶意URL,当受害者在Web浏览器中打开该URL的时候,恶意脚本会在受害者的计算机上悄悄运行,流程如图所示:
文章插图
点击添加图片描述(最多60个字)
02
XSS的危害
1.网络钓鱼,包括盗取各类用户账号;
2.窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
3.劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等;
4.强制弹出广告页面、刷流量等;
5.网页挂马;
6.进行恶意操作,例如任意篡改页面信息、删除文章等;
7.进行大量的客户端攻击,如DDoS攻击;
8.结合其他漏洞,如CSRF漏洞,实施进一步作恶;
9.传播跨站脚本蠕虫等 。
03
XSS的原理及案例
XSS根据其特性和利用手法的不同,只要分成两大类型:一种是反射型跨站脚本;另一种是持久型跨站脚本 。
1.反射型XSS
反射型跨站脚本也称作非持久型、参数型跨站脚本 。这种类型的跨站脚本是最常见的,也是使用最广的一种,主要用于将恶意脚本附加到URL地址的参数中,例如:
http://www.test.com/search.php?key=”><script>alter(“XSS”)</script>
http://www.test.com/logout.asp?out=1&ur1=JavaScript:alert(document.cookie)
反射型XSS的利用一般是攻击者通过特定手法(比如利用电子邮件),诱惑用户去访问一个包含恶意代码的URL,当受害者单击这些专门设计的链接的时候,恶意JavaScript代码会直接在受害者主机上的浏览器执行 。它的特点是只在用户单击时触发,而且只执行一次,非持久化,所以称为反射型跨站式脚本 。
反射型XSS的攻击流程如图所示:
文章插图
此类XSS通常出现在网站的搜索栏、用户登入口等地方,常用来窃取客户端Cookies或进行钓鱼欺骗 。
如下为反射型XSS的一个案例:当在该网站的姓名提交框内输入恶意的JavaScript脚本时,点击提交按钮,便出现了反射型XSS攻击,如图所示:
文章插图
点击添加图片描述(最多60个字)
文章插图
点击添加图片描述(最多60个字)
反射型XSS的危害往往不如持久型XSS,因为恶意代码暴露在URL参数中,并且时刻要求用户单击方可触发,稍微有点安全意识的用户可以轻易看穿链接是不可信任的 。如此一来,反射型XSS攻击的成本要比持久型XSS高得多 。
2.持久型XSS
持久型跨站脚本也等于存储型跨站脚本,比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全 。
此类XSS不需要用户单击特定的URL就能执行跨站脚本,攻击者事先将恶意JavaScript代码上传或存储到漏洞服务器中,只要受害者浏览包含此恶意JavaScript代码的页面就会执行恶意代码 。
持久型XSS的攻击流程如图所示:
文章插图
点击添加图片描述(最多60个字)
持久型XSS一般出现在网站的留言、评论 。博客日志等交互处,恶意脚本被存储到客户端或者服务器的数据库中,当其他用户浏览该网页时,站点即从数据库中读取恶意用户存入的非法数据,然后显示在页面中,即在受害者主机上的浏览器执行恶意代码 。
如下为持久型XSS的一个案例:当攻击者在留言框内输入恶意JavaScript代码并提交后,其他用户再浏览这个页面时,就会发生持久型XSS攻击,如图所示:
推荐阅读
- 存储型XSS的危害
- 如何编写awk命令和脚本
- 5个Linux服务器一键综合测试性能和配置脚本工具
- 小白都能使用bash脚本编写黑客工具
- 在Linux中通过expect工具实现脚本的自动交互
- 黑客如何钓鱼?黑客带你了解高超的钓鱼平台
- 3分钟快速了解防不胜防的XSS攻击
- 脚本语言,node在前端都有什么作用?
- Linux下如何使用crontab来定时执行脚本任务?
- 如何把 awk 脚本移植到 Python