网安入门16-XSS(三种类型)

news/2024/4/17 6:57:51

什么是XSS漏洞——来自Google Gemini

XSS漏洞,全称跨站脚本攻击(Cross-Site Scripting),是代码注入的一种。它允许恶意用户将代码注入到网页上,原理是攻击者将恶意代码注入到可信网站的页面中,当用户浏览该页面时,恶意代码就会被浏览器执行,从而达到攻击者的目的。

XSS攻击的常见危害包括:

  • 盗取用户敏感信息,如Cookie、账号密码等;
  • 控制用户浏览器,进行钓鱼攻击、重定向等;
  • 篡改网页内容,进行欺诈等。

XSS漏洞的常见类型包括:

  • 反射型XSS:攻击者将恶意代码通过URL参数、表单提交等方式注入到目标网页中,当用户访问该网页时,恶意代码就会被执行;
  • 存储型XSS:攻击者将恶意代码注入到数据库等存储介质中,当用户访问包含恶意代码的网页时,恶意代码就会被执行;
  • DOM型XSS:攻击者利用JavaScript代码动态地将恶意代码注入到网页中,当用户访问该网页时,恶意代码就会被执行。

XSS漏洞的防范措施包括:

  • 对用户输入进行严格的过滤和验证;
  • 对输出内容进行转义处理;
  • 使用安全的编码规范;
  • 更新浏览器和Web服务器软件。

我的理解

跨站脚本攻击XSS(Cross Site Scripting,XSS),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意JS代码,当用户浏览该页面时,嵌入Web里面的JS代码会被执行,从而达到恶意攻击用户的目的。

虽然泄露个人信息较为严重,但是实战难以利用,比较鸡肋,最大的危害就是能窃取用户Cookie资料,从而执行任意操作,在挖洞中应该比较常见。

反射型XSS


这是一个查询你最喜欢的球星的页面,输入kobe,就回显愿你和kobe一样,那我随便输,都会在前端的Javascript中复现,这个时候思路就来了
输入作者的名字,原封不动的回显输入的东西

接着你变成黑客,输入经典的<script>alert(1)</script>,神奇的东西出现了

上方弹出了一个大大的1,而下方没有回显,说明语句进入了代码中执行

在这里插入图片描述

存储型XSS


看到一个留言板,先故技重施

弹了个1,可以看到留言列表中多了一条记录,并且查看源代码是原封不动的存入数据库中的


接下来就是见证存储型的危害了,换一个浏览器访问同一个的URL,也直接弹1!

DOM型XSS

DOM型XSS全称Document Object Model,使用DOM动态访问更新文档的内容、结构及样式。
HTML标签都是节点,节点组成了节点树。通过HTML DOM 可以对树上的所有节点进行修改。
服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS漏洞。

下面看一个DOM将html转换为树状结构体,深入的理解DOM结构标准:

所以说DOM型xss可以在前端通过js渲染来完成数据的交互,达到插入数据造成xss脚本攻击,且不经过服务器,所以即使抓包无无法抓取到这里的流量,而反射性与存储型xss需要与服务器交互,这便是三者的区别。


https://www.xjx100.cn/news/3293521.html

相关文章

使用sunshine和moonlight实现远程游戏串流

过年回家想要打游戏&#xff0c;但是苦于家里没有电脑&#xff0c;又没办法把电脑搬回去&#xff0c;于是想到了使用串流的方式。 实现串流的软件有多种&#xff1a; moonlight。因为仅实现了 NVIDIA 的游戏串流协议&#xff0c;所以只支持 N 卡。Steam Link。支持 steam 的游…

Hive的Rank排名(rank函数,dense_rank函数,row_numer函数)

一、区别&#xff1a; 三者通常都会配合窗口函数over()&#xff0c;并结合partition by order by xxx来分组排序&#xff0c;即形式使用&#xff1a;function_name over(partition by xxx order by xxx)。首先三者都是产生一个自增序列&#xff0c;不同的是 row_number() 排序…

许战海矩阵|佐香园:“熟酱”的爆品战略

佐香园是辽宁帝华味精食品有限公司的主导品牌&#xff0c;是一个拥有自主研发与生产经营能力的民营企业&#xff0c;主要生产和销售香料、调味料以及食品添加剂等产品。该品牌自创办以来&#xff0c;一直坚持以市场为导向&#xff0c;走专业化发展之路&#xff0c;打造全方位的…

深度学习 精选笔记(5)多层感知机

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

在Redhat 7 Linux上安装llama.cpp

正常安装的错误信息 安装 gcc 和gcc-c 之后&#xff0c;你运行Make 命令编译llama.cpp的时候&#xff0c;你会发现下面问题。 yum -y install gcc --nogpgcheckyum -y install gcc-c --nogpgcheck 错误信息&#xff0c; 因为gcc 的版本是4.8 cc -I. -Icommon -D_XOPEN_SOU…

Groovy(第九节) Groovy 之单元测试

JUnit 利用 Java 对 Song 类进行单元测试 默认情况下 Groovy 编译的类属性是私有的,所以不能直接在 Java 中访问它们,必须像下面这样使用 setter: 编写这个测试用例余下的代码就是小菜一碟了。测试用例很好地演示了这样一点:用 Groovy 所做的一切都可以轻易地在 Java 程序…

unity 场景烘焙中植物叶片(单面网络)出现的白面

Unity版本 2021.3.3 平台 Windows 在场景烘焙中烘焙植物的模型的时候发现植物的叶面一面是合理的&#xff0c;背面是全白的&#xff0c;在材质球上勾选了双面烘焙&#xff0c;情况如下 这个问题可能是由于植物叶片的单面网格导致的。在场景烘焙中&#xff0c;单面网格只会在一…

【Linux】协议定制序列化反序列化

文章目录 1. TCP协议的通信流程2. 应用层协议定制3. 通过“网络计算器”的实现来实现应用层协议定制和序列化3.1 protocol3.2 序列化和反序列化3.2.1 手写序列化和反序列化3.2.2 使用Json库 3.3 数据包读取3.4 服务端设计3.5 最后的源代码和运行结果 1. TCP协议的通信流程 在之…