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

XSS学习(cookie远程登录演示)

1.HTTP特点:

1.请求应答模式。

2.灵活可扩展

3.可靠传输

4.无状态。

这里给大家举一个例子:

HTTP是无状态的,所按理来说我每进行一次会话,比如我在CSDN发一个帖子,好像按理来说我都要进行一次重新登陆,可是实际之中为什么不是这样的呢?这里必须引入一个概念cookie

2.cookie的组成

Cookie 通常由键值对组成,具有以下格式:

 

key1=value1; key2=value2; key3=value3;

其中,每个键值对表示一个特定的属性或数值。一些常见的属性包括:

  • Expires:指定 Cookie 的过期时间。
  • Domain:指定哪些域名可以访问该 Cookie。
  • Path:指定在哪个路径下的页面可以访问该 Cookie。
  • Secure:指定是否只有通过 HTTPS 连接的请求才能发送该 Cookie。
  • HttpOnly:指定是否限制 JavaScript 访问该 Cookie,以增加安全性。

举例来说,一个简单的 Cookie 格式可能如下所示:

user_id=12345; session_token=abcdef; Expires=Sat, 26 Mar 2025 10:00:00 GMT; Path=/; Secure; HttpOnly

这个例子中包含了两个键值对(user_id=12345session_token=abcdef),以及一些属性(ExpiresPathSecureHttpOnly)。

而且cookie通常都是保存在你的磁盘里面的,并且通常都会有时间限制,在一段时间内你可以利用cookie登录这个网站,就类似于你去医院看病,第一次可能会各种填表,很麻烦,但是你第二次去的话,由于对面有了你的信息,你可能一张纸就一路通畅,这个就是cookie。

 

你可以在火狐浏览器上使用alert(document.cookie);这个命令直接获取你的cookie。

3.cookie远程登录

接下来直接给大家演示通过cookie登录用户的实际演示:

首先我是用edge浏览器和火狐浏览器上安装这个插件

我是用博客园这个网站做演示,首先登录你的账号,然后

打开插件,导出为JSON,然后把这个cookie复制,在另外的火狐浏览器导入你edge浏览器博客园的cookie

发现已经在火狐登录了博客园账号

你甚至可以在火狐浏览器上使用alert(document.cookie);这个命令直接获取你的cookie。

非常简单,就一个命令,如果拿到你的电脑,不到半分钟就能获取你的cookie,而有了cookie就能够远程登录。但是黑客可不会这样获取你的cookie,他们会在远处获取你的cookie,这就得提到了XSS。

4.XSS

XSS(跨站脚本攻击)是一种常见的Web安全漏洞,它利用网页开发中未经充分验证的用户输入,向页面注入恶意脚本,从而使得这些恶意脚本在用户浏览器中执行。

XSS攻击流程

  1. 攻击者寻找目标网站存在XSS漏洞的页面,通常是包含用户输入并且没有做充分的过滤或转义的页面,比如搜索框、评论区等。
  2. 攻击者在输入框中注入带有恶意脚本的内容,比如JavaScript代码。
  3. 你访问包含恶意注入的页面时,浏览器会执行恶意脚本,导致攻击者能够窃取用户的Cookie信息,获取你的cookie后能够做出什么事情我上面已经给大家演示过了。

XSS攻击分类

反射型XSS

又称为非持久型XSS,这种攻击往往具有一次性

比如你点击URL后,恶意脚本被发送到服务器,然后服务器返回并执行该脚本,导致攻击成功。

存储型XSS

存储型XSS又称为持久型XSS,比如你在博客或者留言板发帖的过程中嵌入XSS攻击代码,帖子被目标服务器存储在数据库中,当用户进行正常访问时,触发XSS代码。

DOM型XSS

  • DOM-based XSS攻击是一种特殊的XSS攻击,恶意脚本的执行是在客户端而不是在服务器端实现的。
  • 攻击者通过修改页面的DOM环境,比如URL片段或DOM属性,来触发执行恶意脚本。

XSS防范:

必须对输入进行一个过滤,就比如说:<script>alert(1)</script>

看到<script>这种东西一看就知道是XSS攻击,但是魔高一尺,道高一丈,对面也可能进行十六进制编码,或者双写绕过,千变万化,最好的方法就是提高对这些输入的识别,进行及时过滤。

相关文章:

  • AXI4-Stream Interconnect IP核(1)——原理
  • MySQL数据库 - 复杂查询(一)
  • 二叉树|701.二叉搜索树中的插入操作
  • Springboot项目之mybatis-plus多容器分布式部署id重复问题之源码解析
  • 【生成对抗网络GAN】一篇文章讲透~
  • 《无名之辈》天涯镖局攻略:高效拉镖窍门!
  • Codeup_1132:问题 A: 最长公共子序列
  • 大话设计模式之模板方法模式
  • 云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测
  • 你的 Python 代码需要解释一下了!
  • ideaSSM 人才引进管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目
  • 医院同步时钟系统的耐用性与可靠性
  • 【数据分享】1929-2023年全球站点的逐日平均海平面压力(Shp\Excel\免费获取)
  • git提交和回退
  • 【前端】Layui的表格常用功能,表单提交事件,表格下拉按钮点击事件,表格外的按钮点击事件
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 03Go 类型总结
  • centos安装java运行环境jdk+tomcat
  • Docker 笔记(2):Dockerfile
  • Java 23种设计模式 之单例模式 7种实现方式
  • MySQL数据库运维之数据恢复
  • PHP面试之三:MySQL数据库
  • SpringBoot几种定时任务的实现方式
  • 面试遇到的一些题
  • 判断客户端类型,Android,iOS,PC
  • 设计模式 开闭原则
  • 2017年360最后一道编程题
  • ​MySQL主从复制一致性检测
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)Windows2003安全设置/维护
  • ***原理与防范
  • .java 9 找不到符号_java找不到符号
  • .Net core 6.0 升8.0
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET gRPC 和RESTful简单对比
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET 使用配置文件
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 的字符串暂存池
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET性能优化(文摘)
  • .ui文件相关
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @Autowired注解的实现原理
  • @selector(..)警告提示
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [Angularjs]ng-select和ng-options
  • [BZOJ1053][HAOI2007]反素数ant
  • [C#]winform部署PaddleOCRV3推理模型
  • [codevs 1515]跳 【解题报告】