黑客学习-xss漏洞总结

news/2024/10/17 12:22:58/

1、什么是xss

先来看案例

在一个输入框中,输入js代码,存放alter()其弹窗,结果可以看到,代码成功执行。这个就是xss漏洞

XSS攻击全称跨站脚本攻击,是一种在Web应用中常见的安全漏洞,它允许用户将恶意代码植入到Web页面中,当其他用户访问此页面时,植入的恶意脚本就会在其他用户的客户端中执行。是为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS

导致xss漏洞存在有几个原因

  1. 对用户提交的数据未进行充分验证和过滤,如未对特殊字符和标签进行转义,导致恶意脚本被注入到Web页面中。
  2. Web应用程序未对输出的数据进行过滤,导致恶意脚本被注入到Web页面中。
  3. Web应用程序将未经过验证和过滤的数据作为JavaScript代码执行,如在URL中传递参数、在HTML标签属性中传递参数等,导致恶意脚本被执行。
  4. Web应用程序使用不安全的JavaScript API,如eval()函数等,导致恶意脚本被执行。

 

2、xss的分类

xss分为三类:

  • 反射性xss
  • 存储型xss
  • dom型xss

反射性xss

反射性XSS,也叫非持久性XSS,是指攻击者将恶意脚本代码作为参数或请求体提交给Web应用程序,服务器将恶意脚本代码反射回到用户的浏览器中执行,从而实现攻击的方式。由于反射性XSS攻击需要用户触发,因此攻击者通常需要通过诱骗用户进行操作来实现攻击。

反射性XSS攻击的过程一般如下:

  • 攻击者构造一个包含恶意脚本的URL,并将其发送给用户或者在论坛等社交媒体平台上发布。
  • 用户点击链接,浏览器向Web服务器发出请求,将恶意脚本作为参数或请求体提交给Web应用程序。
  • 服务器将包含恶意脚本的响应返回给用户的浏览器。
  • 用户的浏览器解析响应,并执行其中的恶意脚本,导致攻击成功。

反射性XSS攻击是一种常见的Web安全漏洞,攻击者可以通过此种方式窃取用户的Cookie、伪造Web页面进行钓鱼攻击、篡改Web页面内容等各种恶意行为。为了防止反射性XSS攻击,开发人员应该加强对用户输入数据的过滤和验证,避免恶意代码被注入到Web页面中。

  • 存储型xss

存储型XSS(也称为持久性XSS)攻击是一种XSS攻击形式,攻击者通过对Web应用程序的数据库进行操纵,将恶意脚本代码存储在Web应用程序的数据存储中,当用户请求包含该恶意代码的Web页面时,恶意脚本代码被解析,并在用户的浏览器中执行。
 

与反射性XSS攻击不同,存储型XSS攻击的恶意脚本代码被存储在服务器端,攻击者可以利用漏洞将其注入到Web应用程序的数据库中。当用户请求包含恶意脚本代码的Web页面时,服务器会从数据库中获取相应的数据,然后将其返回给用户的浏览器,恶意脚本代码随之被执行,从而导致攻击成功。
 

存储型XSS攻击常见于在线社交平台、留言板、电子商务网站等具有用户交互功能的Web应用程序中。攻击者可以通过存储型XSS漏洞,窃取用户的敏感信息、窃取用户的Cookie、伪造Web页面进行钓鱼攻击等各种恶意行为。为了防止存储型XSS漏洞,开发人员应该对用户输入的数据进行充分过滤和验证,并对输出的数据进行过滤,避免恶意脚本代码被存储到Web应用程序的数据库中。

  • dom型xss

DOM型XSS(也称为基于DOM的XSS攻击)是一种XSS攻击形式,攻击者通过在Web页面中使用JavaScript中API,更改页面上的DOM节点,以注入恶意脚本。和存储型XSS、反射型XSS不同,DOM型XSS不涉及到数据的存储和传递,也不依赖于服务器的响应内容,而是针对客户端自身的操作进行攻击。

DOM型XSS攻击的过程一般如下:

  1. 攻击者构造一个包含恶意脚本的URL,并将其发送给用户或者在论坛等社交媒体平台上发布。
  2. 用户点击链接,浏览器向Web服务器发出请求,将恶意脚本作为参数提交给Web应用程序。
  3. Web应用程序将恶意脚本嵌入到Web页面中,并通过JavaScript中的API对其进行解析和执行。
  4. 恶意脚本在浏览器中执行,可以修改Web页面内容、窃取用户的Cookie、伪造Web页面进行钓鱼攻击等各种恶意行为。

为了防止DOM型XSS攻击,开发人员应该在编写JavaScript代码时,规范化传递参数的方式,避免输入数据被当作脚本解析执行。同时,也应该尽量避免直接修改DOM元素的方式,而是使用安全的HTML框架和模板,以降低受到XSS攻击的风险。用户在使用Web应用程序时,也应该保持警惕,不要轻信不明来源的链接和信息,以避免被攻击者利用DOM型XSS漏洞进行攻击。

3、xss靶场练习:dvwa

 

4、 xss的漏洞利用

xss漏洞利用,可以是使用BeEF。BeEF(Browser Exploitation Framework)是一种基于Web的渗透测试框架,可以用来控制几乎所有类型的Web浏览器,包括桌面和移动设备上的浏览器。它可以使渗透测试人员利用XSS漏洞在用户的浏览器中执行特定的JavaScript码,以从用户身上获取敏感信息。BeEF也提供了多种模块,帮助渗透测试人员执行网络漏洞扫描,并在Web浏览器中执行漏洞利用等功能。

以下是kali安装beff步骤:

1、更新系统软件包:

sudo apt-get update
sudo apt-get upgrade

2、安装beef

sudo apt-get install beef-xss

3、启动beef服务

sudo beef-xss

4、启动beef

在浏览器中,在地址栏中输入localhost:3000。打开该页面即可看到BeEF的管理控制台。

 


http://www.ppmy.cn/news/248384.html

相关文章

TTF字体包瘦身

需求 客户要求首页使用字体,分别为中文和英文格式 首页是基于H5的一个公众号 问题 客户给的字体较大,有两个格式的,分别是中文和英文的.单个都超过了10M, 如果未压缩,因为在首页,访问的次数多,会造成服务器资源紧张, 准备工作 下载好完整版客户提供的的.ttf文件。 下载好…

CSS字体样式属性调试

恶魔 不能# CSS字体样式属性调试 1.font-size font-size属性用于设置字号 p { font-size:20px;2.font-family font-family用于设置字体 p { font-family:"Mirsoft YaHei"; }网页中常用字体有宋体,微软雅黑,黑体等 可以同时指定…

【数据结构】常见排序算法——常见排序介绍、选择排序(直接选择排序、堆排序)交换排序(冒泡排序)

文章目录 1.常见排序2.选择排序2.1直接选择排序2.2堆排序 3.交换排序3.1冒泡排序 1.常见排序 2.选择排序 选择排序是一种简单但不高效的排序算法,其基本思想是从待排序的数据中选择最小(或最大)的元素放到已排序的数据末尾。具体操作步骤如下…

Netty的bytebuf详解

ByteBuf ByteBuf是对nio中ByteBuffer的增强。主要的增强点就是ByteBuf它可以动态调整容量大小,当要存储的数据超过了当前容量的上限就会进行扩容,扩容的上限是多少?扩容机制是什么?请跟着本文往下看。对了,还有一个增强…

Linux命令su、sudo、sudo su、sudo -i使用和区别

sudo 与 su 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。另外一个区别是其默认行为,sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时…

FPGA DAC AD9764调试

AD9764 时钟频率125M 14位数据位 数值电压/V8192016384-30313653.3-227302 实测8267 电压近似为0

MySQL学习12_rpm安装MySQL报** is needed by **错误

使用rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm命令,安装MySQL时,遇到了下面的错误: [rootMaster mysql]# rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm warning: MySQL-server-5.6.26-1.linux_glibc2.5.x86_6…

前端学习(2730):重读vue电商网站40之使用vue-table-with-tree-grid

安装新的依赖 vue-tabel-with-tree-gridvue-tabel-with-tree-grid 官方文档 安装完成后,在 main.js 入口文件内先导入 tree-tabel 然后全局注册组件 tree-tabel 页面中,我们使用了如下属性: data 确定我们的数据源,columns定义我…