网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

admin 2023年12月23日01:02:37评论24 views字数 2391阅读7分58秒阅读模式
知识宝库在此藏,一键关注获宝藏
首先我们了解一下原理,XSS(Cross Site Scripting)跨站脚本攻击用一句话概括就是用户输入的数据被当做前端代码执行
在Web应用中,前端代码主要包括HTML、CSS和JavaScript。
1. HTML(超文本标记语言):HTML 用于描述网页的结构和内容,包括标签、元素、属性等。前端骨架(有很大系,但不是该漏洞的利用核
2. CSS(层叠样式表):CSS用于定义网页的样式和布局。美化作用(和渗透关系不大)
3. JavaScript:JavaScript是一种客户端脚本语言,用于实现动态效果和与用户的交互。恶意的JavaScript代码可以直接在用户的浏览器中执行,导致XSS攻击的发生。操纵浏览器去做各种事情(渗透和JS代码息息相关)

网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

这个漏洞怎么触发,然后又能干些什么事情呢?
想象一下,你的网站上有一个输入框,让用户留言。当用户输入一段文字后,这段文字会被展示在网页上供其他用户看到。但是,有些不好的人可能会在输入框里输入一些含有恶意脚本代码的文字。当其他用户来访问这个网页并看到这段文字时,他们的浏览器会误解这段文字是可信的并执行其中的脚本代码。
这个恶意脚本代码可以做很多坏事,比如窃取用户的登录信息、使用用户的身份在网站上进行操作、篡改网页内容,或者引导用户访问恶意网站等等。
XSS的原理就是攻击者通过在你的网站上注入恶意脚本代码,然后其他不知情的用户在访问网站时被迫执行这段代码,从而导致网站安全问题和用户的信息泄露。
XSS攻击的种类又有哪几种呢?
XXS攻击的主要形式包括反射型XSS、存储型XSS和DOM型XSS。
反射型XSS 中,攻击者将恶意脚本注入到特定的URL参数中,当用户点击带有恶意参数的链接时,恶意脚本被触发执行。你提交的数据成功的实现了XSS,但是仅仅是对你这次访问产生了影响,是非持久型攻击。
存储型XSS 是指攻击者将恶意脚本存储在目标网站的数据库中,当其他用户访问受影响的页面时,恶意脚本被从数据库中读取并执行。你提交的数据成功的实现了XSS,存入了数据库,别人访问这个页面的时候就会自动触发。
DOM型XSS 是指攻击者通过修改页面的DOM对象,将恶意脚本注入到页面中,然后被受害用户的浏览器直接执行。这个复杂一些,了解即可。

接下来我们看看实例(该案例为存储型XSS)

本文仅介绍XSS漏洞产生危害的具体表现方式,具体细节有兴趣的可自行搜索,以下测试内容为掌控安全学院给靶场站点,未经允许,切勿在任意网站进行渗透测试
已知某站点留言板存在XSS漏洞,输入的内容会被当做前端代码进行解析

网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

因为XSS payload构建复杂,所以一般情况下我们都是使用XSS平台去获取网站的一些相关信息,例如cookie(是网站用来跟踪和识别用户的“小型文本文件”)等。

网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

构造好后,我们尝试插入XSS的payload,提交保存后等待管理员的访问

网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

然后过了一会,在XSS平台发现已经得到了相关数据

网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击
网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

获取到cookie后,如果该站点未做其他安全措施,我们就能通过该cookie顺利以受害者当时访问帐号权限,登录对应的系统

网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

通过上述的案例仅仅展示了该漏洞的一种利用方式,在一般情况下,XSS漏洞的危害等级可以被评估为中危至高危漏洞

反射型的XSS漏洞的危害等级一般可以被评估为中危。该形式往往只影响到请求该特定URL的用户或会话。攻击者无法直接向其他用户传播恶意代码。通常需要用户点击包含恶意代码的特定链接或访问恶意的URL才能触发。这意味着攻击者需要诱使用户进行特定的操作,才能成功利用漏洞进行攻击。

而存储型XSS一般被认为是比反射型XSS更高危的漏洞类型存储型XSS漏洞与反射型XSS不同,存储型XSS的影响范围不仅限于特定URL或用户,而是波及到所有访问相关漏洞页面的用户。攻击者存储的恶意脚本会一直存在于服务器上,任何用户访问相关页面都有可能受到攻击,这使得存储型XSS的攻击效果持久化。攻击者可以利用存储型XSS漏洞来窃取用户的敏感信息、篡改网站内容、劫持会话等,对用户造成严重损害。
DOM型XSS漏洞的危害等级一般可以评估为中危到高危。DOM型XSS漏洞通常影响的是当前用户或与其相关的操作,而不会直接影响到其他用户。因此,从整体影响范围来看,DOM型XSS漏洞的风险相对较低。DOM型XSS漏洞需要攻击者对目标网站的前端代码有一定的了解,并需要通过特定的用户操作来触发执行恶意代码。相比之下,与针对性攻击和技术要求较低的存储型XSS漏洞相比,DOM型XSS漏洞的攻击复杂性较高。
但是漏洞最终的风险等级还是要取决于多种因素
实际评估风险等级时,我们需要考虑攻击者能够利用XSS漏洞来执行哪些恶意操作,例如窃取敏感信息、修改网页内容、劫持会话等。
考虑能够触发漏洞的操作条件和受影响的用户范围,如果漏洞只能被特定条件下的特定用户触发,并且只影响到用户自身,那么风险等级可能相对较低。但若漏洞能够被任意用户触发且影响到多个用户,则风险等级可能较高。

评估目标网站处理的信息类型和业务重要性。如果网站涉及敏感信息、金融交易、用户隐私等,则XSS漏洞的风险等级可能会相对较高。而如果网站仅为非敏感的个人博客或信息展示网站,则风险等级可能相对较低。

针对该洞修复建议:

对用户输入进行过滤和验证:应用严格的输入验证,过滤用户输入并确保只允许有效且符合预期的内容提交到服务器。使用白名单过滤或合适的正则表达式来验证和限制用户输入的内容。

转义输出内容:在将用户输入或其他动态内容插入到HTML、JavaScript、CSS等页面中时,使用适当的编码和转义机制来防止恶意代码的执行。常见的转义方法包括HTML实体编码、JavaScript转义、CSS转义等。

原文始发于微信公众号(等保不好做啊):网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月23日01:02:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络安全基础技术扫盲篇 — 常见web漏洞之XSS跨站脚本攻击http://cn-sec.com/archives/2328723.html

发表评论

匿名网友 填写信息