XSS三种类型的示例讲解

您所在的位置:网站首页 xss类型有哪些 XSS三种类型的示例讲解

XSS三种类型的示例讲解

2023-09-06 15:09| 来源: 网络整理| 查看: 265

文章不易,请关注公众号 毛毛虫的小小蜡笔,多多支持,谢谢。

概述

Cross-site scripting,简称XSS,跨站脚本攻击。

XSS是一种网站应用程序的安全漏洞攻击,是代码注入的一种。 它允许恶意用户将代码注入到网页上,其他用户在浏览网页的时候,就会受到攻击。

反射型XSS - Reflected XSS

用户在页面的输入,经过http请求发送到服务端, 服务端处理后,把用户的输入原封不动的返回到浏览器, 浏览器也没做处理,直接把用户的输入显示到页面中。

示例

服务端代码:

// 服务端(koa2)代码:收到浏览器发送来的word参数,原封不动(不额外处理)的返回给浏览器 router.get('/search', async (ctx, next) => { let req = ctx.request ctx.state = { title: 'xss', word: req.query.word } ctx.body = req.query.word ? req.query.word : '' })

浏览器加入word参数,如word=123,此时页面会显示参数的值,即123。看到请求response的值也是123。

如下图所示: 图片

此时,是存在XSS漏洞的。

比如在URL中输入“”,就会弹窗。如下截图所示: 图片

很明显,弹窗了就是存在XSS漏洞了。

反射型的XSS,一般多发生在服务端渲染(如上面的示例),以及浏览器端通过js直接渲染到页面($('#search').html(res.data))的情况。

存储型XSS - Stored XSS

相比反射型,存储型则是把用户的输入存储起来。 可想而知,这种类型的影响,范围大很多。

这里就不演示了,有兴趣可看看著名的萨米XSS蠕虫攻击。

该蠕虫用JavaScript实现,利用储存型XSS漏洞传播。 它在每个被感染的用户页面显示一行字串“but most of all, samy is my hero”,并将自己复制在该用户页面。 当新的用户点击被感染的用户页面时,就会触发该程序在用户的浏览器中运行,导致蠕虫进一步传播,在该新用户主页上再度复制。 在短短20小时内,从2005年10月4日发布起,超过一百万的用户都运行了该程序。 这让该作者的账户在该社交网络上的关注量指数级增长,并让萨米蠕虫成为历史上传播速度最快的计算机病毒。

基于DOM的XSS - DOM Based XSS

反射型和存储型都必须经过服务端,但基于DOM的XSS则是不用,而是直接在浏览器端攻击。

示例

详情 请查看:毛毛虫的小小蜡笔



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3