XSS漏洞原理及利用跨站请求伪造CSRF

XSS漏洞原理及利用&跨站请求伪造CSRF

  • XSS
    • 一、案例
    • 二、什么是XSS
    • 三、XSS危害
    • 四、XSS的分类
      • 4.1、反射型XSS
        • 4.1.1、介绍
        • 4.1.2、利用过程
      • 4.2、存储型XSS
        • 4.2.1、介绍
        • 4.2.2、利用过程
        • 4.2.3、案例
      • 4.3、DOM型XSS
        • 4.3.1、介绍
        • 4.3.2、常用的DOM方法
        • 4.3.3、案例
          • 4.3.3.1、代码分析
          • 4.3.3.2、利用分析
    • 五、XSS三种类型的比较
    • 六、防御方式
  • CSRF
    • 一、介绍
    • 二、危害
    • 三、漏洞现状
    • 四、漏洞利用
      • 4.1、Burp抓包一>生成CSRF PoC
      • 4.2、利用PoC
      • 4.3、不用点击的PoC
    • 五、防御

XSS

一、案例

  • xss.html
<!DOCTYPE htmL>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>案例</title>
</head>
<body>
    <form action="">
        What is your name?
        <input type="text" name="name"><br><br>
        <input type="submit" value="提交">
    </form>
    <p>
    <?php
        if(isset($_GET['name'])){
            $name =$_GET['name'];
            echo "hello,$name";
        }
    ?>
    </p>
</body>
</html>

在这里插入图片描述

有什么问题吗?

在这里插入图片描述

攻击利用

在这里插入图片描述

<script>alert("xss")</script>

二、什么是XSS

  • XSS(Cross Site Scripting)跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets—)的缩写CSS混合,所以改名为XSS。
  • XSS原理:攻击者在网页中嵌入客户端脚本(通常是javaScript的恶意脚本),当用户使用浏览器加载被嵌入恶意代码的网页时,恶意脚本代码就会在用户的浏览器执行,造成跨站脚本攻击。

在这里插入图片描述

三、XSS危害

1、针对用户

  • 盗取Cookie
  • 网络钓鱼
  • 植马挖矿
  • 广告刷流量

2、针对Web服务

  • 劫持后台
  • 篡改页面
  • 内网扫描
  • 制造蠕虫

常出现的场景:

1、重灾区:评论区、留言区、个人信息、订单信息等
2、针对型:站内信、网页即时通讯、私信、意见反馈
3、存在风险:搜索框、当前目录、图片属性等

四、XSS的分类

4.1、反射型XSS

4.1.1、介绍

  • 反射型XSS是非持久型、参数型的跨站脚本,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。
  • 出现场景:多出现在搜索框或者输入框。

在这里插入图片描述

  • 如:http://47.109.71.232:8081/
    在这里插入图片描述

4.1.2、利用过程

在这里插入图片描述

4.2、存储型XSS

4.2.1、介绍

  • 存储型XSS:恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性持久性
  • 比较常见的场景是,黑客写下一篇包含有恶意JavaScript代码的博客文章,文章发表后, 所有访问该博客的用户,都会在他们的浏览器中执行这段恶意js代码。

在这里插入图片描述

4.2.2、利用过程

在这里插入图片描述

4.2.3、案例

  • xss.php
<?php
     if(isset($_POST['message'])){
         $message = $_POST['message'];
         file_put_contents("message.txt", $message);
    }
?>
<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
     <title>存储型XSS</title>
</head>
<body>
     <h1>存储型XSS案例</h1>
     <form action="" method="post">
         留下你的评论:<textarea rows="5" cols="30" name="message"></textarea>
         <input type="submit" value="提交">
    </form>
    <p>游客说:
        <?php
            if(file_exists('message.txt')){
                echo file_get_contents('message.txt');
            }else{
                echo "说点啥吧!";
            }
        ?>
 </p>
</body>
</html>

在这里插入图片描述

  • 换个浏览器打开该网页,依旧会出现弹窗。

在这里插入图片描述

  • 代码分析:

在这里插入图片描述

4.3、DOM型XSS

4.3.1、介绍

  • DOM,全称Document Object Model(文档对象模型),是W3C推荐的一种独立于平台和语言的标准,定义了访问HTML和XML文档的标准。
  • Dom即window对象下内置的document对象。

在这里插入图片描述

  • DOM-XSS简单去理解就是输出点在DOM,属于特殊的反射型XSS。
    在这里插入图片描述

4.3.2、常用的DOM方法

方法描述
getElementById()返回带有指定 ID 的元素
getElementsByTagName()返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)
getElementsByClassName()返回包含带有指定类名的所有元素的节点列表
appendChild()把新的子节点添加到指定节点
removeChild()删除子节点
replaceChild()替换子节点
insertBefore()在指定的子节点前面插入新的子节点
createAttribute()创建属性节点
createElement()创建元素节点
createTextNode()创建文本节点
getAttribute()返回指定的属性值
setAttribute()把指定属性设置或修改为指定的值

4.3.3、案例

4.3.3.1、代码分析
  • xss.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device?width, initial-scale=1">
	<title>DOM型XSS</title>
</head>
<body>
<h1>DOM型XSS</h1>
<div>name:
	<script>
		if(document.location.href.indexOf("name") >= 0){
			var name = document.location.href.substring(document.location.href.indexOf("name=")+5);
			document.write(decodeURI(name));
		}else{
			document.write('Ryan');
		}
	</script>
</div>
<form>
	What is your name?
	<input type="" name="name">
	<input type="submit" value="提交">
</form>
</body>
</html>

在这里插入图片描述

  • 代码分析:
    在这里插入图片描述
4.3.3.2、利用分析
  • 在输入框中输入XSS探测脚本,浏览器没有触发弹窗。
<script>alert('xss')</script>

在这里插入图片描述

  • 在url中输入XSS探测脚本,浏览器会直接触发弹窗。
    在这里插入图片描述

  • 因为DOM结点在URL处。

五、XSS三种类型的比较

XSS类型存储型反射型DOM型
触发过程1、黑客构造XSS脚本;2、正常用户访问携带XSS脚本的页面正常用户访问携带XSS脚本的URL正常用户访问携带XSS脚本的URL
数据存服务器URLURL
谁来输出后端Web应用程序后端Web应用程序前端JavaScript
输出位置HTTP响应中HTTP响应中动态构造的DOM节点中
是否持久

六、防御方式

  1. 对用户的输入进行合理验证。
    对特殊字符(如 <、>、 ’ 、 ”等)以及<script>javascript等字符进行过滤。
  2. 根据数据位置设置恰当的输出编码。
    根据数据将要置于 HTML 上下文中的不同位置(HTML 标签、HTML 属性、JavaScript脚本、CSS、URL),对所有不可信数据进行恰当的输出编码。
  3. 设置HttpOnly属性。

CSRF

一、介绍

  • CSRF(Cross-Site Request Forgery),中文名称:跨站请求伪造
  • 原理:攻击者利用目标用户的身份,执行某些非法的操作 。
  • 跨站点的请求:请求的来源可以是非本站。
  • 请求是伪造的:请求的发出不是用户的本意。

在这里插入图片描述

二、危害

  • 篡改目标站点上的用户数据。
  • 盗取用户隐私数据。
  • 作为其他攻击的辅助攻击手法。
  • 传播CSRF蠕虫。

三、漏洞现状

CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度…而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF 为“沉睡的巨人”。

四、漏洞利用

在这里插入图片描述
在这里插入图片描述

4.1、Burp抓包一>生成CSRF PoC

1、修改用户数据后,提交。

在这里插入图片描述

2、抓包。

在这里插入图片描述

3、右键生成PoC。

在这里插入图片描述
在这里插入图片描述

4、复制PoC。

在这里插入图片描述

5、新建PoC的html文档。

在这里插入图片描述

4.2、利用PoC

1、修改数据。

在这里插入图片描述

2、访问。

在这里插入图片描述

3、点击。

在这里插入图片描述

4.3、不用点击的PoC

1、修改。

在这里插入图片描述

2、访问PoC的链接后,直接跳转到pikachu的页面。

在这里插入图片描述

五、防御

1、检查HTTP Referer是否是同域网。
2、限制Session Cookie的生命周期,减少被攻击的概率。
3、使用一次性token。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/60575.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux上安装Keepalived,多台Nginx配置Keepalived(保姆级教程)

目录 一、yum安装 第一步&#xff1a;下载 第二步&#xff1a;编辑Keepalived配置文件&#xff08;第一台&#xff09; 第三步&#xff1a;编辑Keepalived配置文件&#xff08;第二台&#xff09; 第四步&#xff1a;我们在本机利用cmd ping一下 一、yum安装 第一步&…

IDEA基础使用

IDEA基础使用 1、IDEA中显示用法和用户截图展示有调用显示无调用显示 对应方法 2、如何找出项目中所有不被调用方法截图展示对应方法 3、常用代码(Code)说明及快捷键:4、未完待续待日后更新。。。总结&#xff1a;欢迎指导&#xff0c;也祝码友们代码越来越棒&#xff0c;技术越…

元素2D转3D 椭圆形旋转实现

椭圆旋转功能展示 transform-style: preserve-3d;&#xff08;主要css代码&#xff09; gif示例&#xff08;背景图可插入透明以此实现边框线的旋转&#xff09; 导致的无法点击遮挡问题可以参考我的另一个文章 穿透属性-----------------------css穿透属性 实时代码展示

【FAQ】在Linux中使用curl访问EasyCVR,返回报错Unauthorized的原因排查

EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&#xff0c;比如&#xff1a;视…

HCIE-Datacom真题和机构资料

通过认证验证的能力 具备坚实的企业网络跨场景融合解决方案理论知识&#xff0c;能够使用华为数通产品及解决方案进行企业园区网络、广域互联网络及广域承载网络的规划、建设、维护及优化&#xff0c;能够胜任企业网络全场景专家岗位&#xff08;包括客户经理、项目经理、售前…

CBCGPRibbon 添加背景图片

resource.h中声明资源的ID&#xff1a;ID_RIBBON_BACKIMAGE rc文件中添加png图片路径&#xff1a; ID_RIBBON_BACKIMAGE PNG DISCARDABLE "res\\bkribbon.png" 代码中添加下测&#xff1a; //添加背景图片 m_wndRibbonBar.SetBackgroundImage(ID_RIB…

使用公式与格式控制Excel快速实现计划甘特图

项目中都会遇到做任务计划的需求&#xff0c;有的客户要求需要有甘特图的形式本文介绍如何使用excel 单元格实现甘特图显示&#xff0c;调整任务时间自动填充单元格填色实现甘特图效果。废话不多说&#xff0c;先看效果。 准备工作先创建两列开始时间与完成时间&#xff0c;这…

EMD经验模态分解介绍

EMD概述 其实一种信号分解方法&#xff0c;是一种自适应的数据处理方法&#xff0c;适合非线性和非平稳时间序列的分析和研究&#xff0c;其本质是对数据序列或信号的平稳化处理。 将上面6个信号叠加如下&#xff1a; 就是6个简单信号叠加&#xff0c;形成一个复杂信号。 核心…

Java精品项目系统第151期大学生校园帮系统打包(编号S063)

Java精品项目系统第151期大学生校园帮系统打包&#xff08;编号S063&#xff09; 大家好&#xff0c;小辰今天给大家介绍一个基于Spring Springboot MyBatis实现的大学生校园帮系统&#xff0c;演示视频文章末尾公众号对号查询观看即可 文章目录 Java精品项目系统第151期大学…

flink1.17 eventWindow不要配置processTrigger

理论上可以eventtime processtime混用,但是下面代码测试发现bug,输入一条数据会一直输出. flink github无法提bug/问题. apache jira账户新建后竟然flink又需要一个账户,放弃 bug复现操作 idea运行代码后 往source kafka发送一条数据 a,1,1690304400000 可以看到无限输出…

etcd

文章目录 etcd单机安装设置键值对watch操作读取键过往版本的值压缩修订版本lease租约&#xff08;过期机制&#xff09;授予租约撤销租约keepAlive续约获取租约信息 事务基于etcd实现分布式锁原生实现官方 concurrency 包实现 服务注册与发现Go 操作 Etcd 参考 etcd etcd 是一…

计算机网络-三种交换方式

计算机网络-三种交换方式 电路交换(Circuit Switching) 电话交换机接通电话线的方式称为电路交换从通信资源分配的角度来看&#xff0c;交换(Switching)就是按照某种方式动态的分配传输线路的资源 电话交换机 为了解决电话之间通信两两之间连线过多&#xff0c;所以产生了电话…

原型模式(Prototype)

原型模式是一种创建型设计模式&#xff0c;使调用方能够复制已有对象&#xff0c;而又无需使代码依赖它们所属的类。当有一个类的实例&#xff08;原型&#xff09;&#xff0c;并且想通过复制原型来创建新对象时&#xff0c;通常会使用原型模式。 The Prototype pattern is g…

解决Pycharm下opencv代码提示问题

解决Pycharm下opencv代码提示问题 新安装了opencv-python4.7.0.72版本&#xff0c;在pycharm中导入cv2后没有代码提示&#xff0c;解决方法如下&#xff1a; 解决方案 我使用的是miniconda环境&#xff0c;opencv安装的路径为&#xff1a;C:\Env\miniconda3\envs\compute\Li…

Vue3和TypeScript项目-移动端兼容

1 全局安装typescript 2 检测安装成功 3 写的是ts代码&#xff0c;但是最后一定要变成js代码&#xff0c;才能在浏览器使用 这样就会多一个js文件 3 ts语法 数组语法 对象语法 安装vue3项目 成功后进入app。安装依赖。因为我们用的是脚手架&#xff0c;要引入东西的时候不需要…

python的下载和安装步骤,python下载安装教程3.10.0

大家好&#xff0c;给大家分享一下python下载安装教程3.10.0&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 第一步&#xff1a;下载Python安装包 在Python的官网 www.python.org 中找到最新版本的Python安装包&#xff0c;点击进行下载&a…

【Java】UWB高精度工业人员安全定位系统源码

基于VueSpring boot前后端分离架构开发的一套UWB技术高精度定位系统源码。 UWB高精度人员定位系统提供实时定位、电子围栏、轨迹回放等基础功能以及各种拓展功能,用户可根据实际需要任意选择搭配拓展功能。该系统简易部署&#xff0c;方便使用&#xff0c;实时响应。UWB高精度定…

【小沐学前端】GitBook制作在线电子书、技术文档(gitbook + Markdown + node)

文章目录 1、简介1.1 工具简介1.2 使用费用 2、安装2.1 安装node2.2 安装gitbook 3、测试3.1 编辑文档3.2 编译工程3.3 预览工程 结语 1、简介 官网地址&#xff1a; https://www.gitbook.com/1.1 工具简介 什么是 GitBook&#xff1f; GitBook 是一个现代文档平台&#xff…

黑客技术(网络安全)自学

一、黑客是什么 原是指热心于计算机技术&#xff0c;水平高超的电脑专家&#xff0c;尤其是程序设计人员。但后来&#xff0c;黑客一词已被用于泛指那些专门利用电脑网络搞破坏或者恶作剧的家伙。 二、学习黑客技术的原因 其实&#xff0c;网络信息空间安全已经成为海陆空之…

Stable Diffusion教程(6) - 图片高清放大

放大后细节 修复图片损坏 显存占用 速度 批量放大 文生图放大 好 是 高 慢 否 附加功能放大 一般 否 中 快 是 图生图放大 好 是 低 慢 是 tile模型放大 非常好 是 高 快 是 通过文生图页面的高清修复 优点&#xff1a;放大时能添加更多细节&am…