1.XSS介绍

 

跨站脚本攻击,英⽂全称是Cross Site Scripting,为了和前端编程语⾔CSS(Cascading Style Sheet,层叠样式表)有所区别,所以缩写为XSS。XSS是基于客户端的Web攻击,跟SQL注⼊攻击⼀样稳居OWASP前三,危害极⼤。

 

XSS即攻击者构造脚本(⼀般是JavaScript脚本)注⼊到Web⻚⾯,受害者通过点击链接即被攻击。攻击者利⽤XSS代码攻击成功后,可以得到Web站点的管理权限、数据库管理权限、会话和cookie等各种内容。

 

XSS攻击点⼀般出现在⽹⻚中的评论框、留⾔板、搜索框等"⽤户输⼊"的地⽅。XSS漏洞形成主要是Web服务端没有对脚本⽂件如script进⾏安全过滤。

 

2.XSS危害

 

XSS的危害有多⼤,完全取决于攻击者对JavaScript等脚本语⾔掌握有多少。拿JavaScript来说,我们通过JavaScript可以⽤来获取⽤户cookie、修改⽹⻚内容、URL跳转等等功能,那么存在XSS漏洞的⻚⾯,就可以盗取⽤户cookie、导航到恶意⽹站等攻击⾏为。总体来说,通过XSS攻击可以实现⽹⻚挂⻢、会话劫持、⽤户劫持、信息截取、⽹站钓⻥、XSS DDOS攻击、XSS蠕⾍等。

 

3.XSS分类

 

XSS攻击可以分为三种:反射型、存储型和DOM型。

 

反射型XSS(Reflectd XSS):⼜称⾮持久型XSS,这种攻击⽅式往往具有⼀次性。当⽤户访问⼀个带有XSS代码的URL请求时,服务端接收数据后处理,把带有XSS代码的数据发送到浏览器,浏览器解析这段带有XSS代码的恶意脚本后,就会触发XSS漏洞。

 

存储型XSS(Stored XSS):⼜称持久型XSS,攻击脚本将被永久的存放在⽬标服务器的数据库或者⽂件中,具有很⾼的隐蔽性。存储型CSS攻击常⻅于论坛、博客和留⾔板,攻击者在发帖的过程中,将恶意脚本连同正常信息⼀起注⼊帖⼦内容中。随着帖⼦被服务器存储下来,恶意脚本也永久的被存放在服务器的后端存储器中。当其他⽤户浏览这个被注⼊了恶意脚本的帖⼦时,恶意脚本就会在⽤户的浏览器中被执⾏。

 

DOM型XSS:是⼀种特殊类型的反射型XSS,它是基于DOM⽂档对象类型的⼀种漏洞。在⽹站⻚⾯中有许多⻚⾯的元素,当⻚⾯到达浏览器时浏览器会为⻚⾯创建⼀个顶级的Document object⽂档对象,接着⽣成各个⼦⽂档对象,每个⻚⾯元素对应⼀个⽂档对象,每个⽂档对象包含属性、⽅法和事件。可以通过JS脚本对⽂档对象进⾏编辑从⽽修改⻚⾯的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改⻚⾯内容,从客户端获取DOM中的数据并在本地执⾏。基于这个特性,就可以利⽤JavaScript脚本来实现XSS漏洞的利⽤。

 

4.XSS跨站脚本渗透

 

检测XSS漏洞我们分为⼿⼯检测和⾃动化检测。⼿⼯检测结果精确,但对于⼀个较⼤的Web站点来说,⼿⼯检测就显得⾮常复杂。⾃动检测虽然⽅便,但是可能会存在误报或者校测不到⽐较隐蔽的XSS漏洞。

 

4.1 手工XSS

 

使⽤⼿⼯XSS来检测Web站点是否存在XSS漏洞时,我们要考虑在⻚⾯的哪个地⽅输⼊,输⼊的内容在哪⾥会显示。在输⼊的时候,我们要选择有特殊意义的字符,这样可以快速测试是否存在XSS漏洞。所以我们就⾮常有必要了解⼀下在⼿⼯XSS检测时常⽤的HTML标签、JavaScript⽅法以及如何来构造XSS脚本。

 

4.1.1 常⽤HTML标签

 

在这⾥我们介绍三种常⽤HTML标签:

  • testarea标签:定义多⾏的⽂本输⼊控件。

  • img标签:⽤来在⽹⻚中嵌⼊图⽚。

  • iframe标签:iframe元素会创建包含另外⼀个⽂档的内联框架(即⾏内框架)。iframe标签可以把其他网页嵌⼊在⼀个⻚⾯中。

 

4.1.2 常⽤JavaScript⽅法

 

  • alert:⽤于显示带有⼀条指定消息和⼀个 OK 按钮的警告框。

  • windows.location:⽤于获取当前⻚⾯地址并把浏览器重定向到新⻚⾯

  • location.href:返回当前⻚⾯的 href (URL)

  • onload:在⻚⾯或图像加载完成后⽴即发⽣

  • onsubmit:在表单中的确认按钮被点击时发⽣

  • onerror:在⽂档或图像加载过程中发⽣错误时被触发

 

4.1.3 构造XSS脚本

 

①弹框警告

 

 

此脚本实现弹框提示,⼀般作为漏洞测试或者演示使⽤。⼀旦此脚本能执⾏,也就意味着后端服务器没有对特殊字符做过滤,这样就可以证明,这个⻚⾯位置存在XSS漏洞。

 

 

此脚本⽤来获取cookie并显示。⼀般需要结合其他代码,让⽤户点击并发送cookie到攻击者架设的服务器。

 

②⻚⾯嵌套

 

 

此脚本⽤于在当前⻚⾯嵌套⼀个⻓度和宽带均为300像素的百度⻚⾯。

 

 

③⻚⾯重定向

 

 

④弹框警告并重定向

 

 

 

⑤访问恶意代码

 

 

将⽤户重定向到其他⻚⾯并读取xss.js内容,xss.js可以构造危害更⼤的脚本。

 

 

BeEF框架的JavaScript语句。

 

⑥巧⽤图⽚标签

 

 

若图⽚链接⽆效,则执⾏src,可以绕开script过滤。

 

 

 

⑦绕开过滤的脚本

 

 

 

通过⼤⼩写绕开过滤。

 

 

 

通过字符编码绕开过滤,⽐如URL、Base64等编码。

 

 

 

通过代码混淆绕开过滤。

 

 

 

⑧收集⽤户cookie

 

 

这些都输⼊XSS脚本⽂件。当然我们还可以使⽤服务器端Web⽂件来收集⽤户cookie:

 

 

下篇⽂章接着给⼤家讲反射型、存储型以及DOM型XSS如何来实现。

 

相关推荐

这些Burp Suite渗透神器的功能,你会用吗?

这份渗透神器Burp Suite使用指南,送给作为新手的你!

防恶意黑客,没有渗透攻击神器加持?不可!

后渗透攻击神器Meterprete,不用怎么知道它的厉害?

 

——END——

 

报班咨询:

班主任微信:

qiuzhiquanquan 或 qqls000,加入微信群

班主任QQ:

1724698994 或 1752856301,加入加入QQ群(240920680

 

加入学习:

拼客学院公号:

微信搜索pinginglab

拼客学院网校:

https://www.pinginglab.net

拼客学院APP:

https://www.pinginglab.net/mobile/

微信小程序:

https://www.pinginglab.net/page/weixin

 

技术交流群:

拼客学院技术交流群:240920680

拼客学院网络安全交流群:482618569

拼客学院Linux云计算交流群:156959645

拼客学院Python人工智能交流群:117907362