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使用指南,送给作为新手的你!
——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
文章来源: 拼客学院
- 还没有人评论,欢迎说说您的想法!