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

不好!有敌情,遭到XSS攻击【网络安全篇】

XSS:当一个目标的站点,被我们用户去访问,在渲染HTMl的过程中,出现了没有预期到的脚本指令,然后就会执行攻击者用各种方法注入并执行的恶意脚本,这个时候就会产生XSS。

涉及方:

  • 用户(通过浏览器去访问网页)
  • 攻击者(通过各种办法让用户访问页面执行恶意脚本,盗取信息)
  • Web服务器(存储并返回恶意脚本)

XSS的危害

挂马

网页挂马是指在一个程序中利用木马生成器生成一个网码,加上一些代码,可以让木马程序再打开网页的时候就立即执行。

XSS的危害-挂马

盗取用户的Cookie

盗取了用户的关键信息后,就可以模拟去做一些事情:包含但不局限于转账请求、恶意信息发送请求、未知文件下载请求、删除目标文章、恶意篡改数据、嫁祸。

蠕虫病毒

  • 爆发 Web2.0 蠕虫病毒
  • 蠕虫式的DDoS攻击
  • 蠕虫式挂马攻击、刷广告、刷流量、破坏网上数据
    截屏2023-03-06 21.52.28.png

其它

  • DDoS(拒绝服务)客户端浏览器。
  • 钓鱼攻击,高级的钓鱼技巧。
  • 劫持用户 Web 行为,甚至进一步渗透内网。

XSS种类

截屏2023-03-06 21.58.35.png

反射型

指发出一个请求的时候,XSS的恶意代码出现在我们的访问链接之中,它作为一部分的数据提交到我们的服务器,服务器解析之后进行响应,代码就会随着响应传回到浏览器中。

比如我们在输入框中输入字符,并且检索,网页也会把结果返回到页面上:

截屏2023-03-06 22.19.15.png

URL里面有什么请求字符,就把请求字符反射到前端页面上:
截屏2023-03-06 22.19.50.png

如果我们把值替换成<script>标签呢?
截屏2023-03-06 22.23.12.png

<script>标签的内容就会成为网页的一部分了,浏览器看到<script>标签就会执行,弹出警示框:

截屏2023-03-06 22.23.31.png

看到这里,我们可能觉得这个小弹窗没什么的,但是真正要进行攻击的黑客只是用这个弹窗来检测网页是否有漏洞,然后再进行更深层次的攻击。

存储型

举一个最常见的评论例子:

截屏2023-03-06 22.34.08.png

当我们提交之后,信息会被保存在服务器里,也就造成了所有浏览此网页看到此评论的人都会执行此脚本,用户不知情,用户越多,中招的人数也就越多,没有乱点链接也中招,想想就可怕。

DOM型

我们来分析:

  • URL地址#(hash)的参数不会发送给服务器

  • Img标签做了字符串拼接
    截屏2023-03-06 22.46.39.png

  • 把id为tabContent的html设置为变量名为html的值
    截屏2023-03-06 22.45.55.png

  • 接下来我们看有没有可以被注入的方法呢?
    我们可以看到chooseTab函数被注入了一个要命的值(location.hash),也就是URL上 # 的值,这也就是黑客最想找到值,黑客就可以修改 # 后面的值,从而触发 JQ 的 html() 方法
    截屏2023-03-06 22.53.46.png

  • 如下代码明显是执行不了src属性,就会触发onerror并执行脚本
    截屏2023-03-06 22.57.17.png

  • 如果这段字符被加在URL后面并执行的话
    截屏2023-03-06 22.59.54.png

  • 因为网页的源码同时存在可以被操作的属性和方法,导致网页文档结构被修改,页面就会触发脚本的加载
    截屏2023-03-06 23.00.12.png

防御敌情

  • 对一些敏感信息进行保护,比如 cookie 使用 http-only,使得脚本无法获取。

  • 可以使用验证码,避免脚本伪装成用户执行一些操作。

  • 输入处理:

    • 包括用户输入、URL参数、POST请求参数
    • 黑名单脚本过滤,如:<script>alert(...)</script>,标签替换,只留中间
    • 白名单过滤,如:像用户名密码,正则匹配用户输入,限制输入位数,限制输入字符等
  • 输出处理

    • <script>alert(...)</script>对输出的编码做转译
    • < : &lt;
    • > : &1t;
    • & : &am;
    • " : quot;
    • ' : &#39;
    • \ : \\
    • / : \/
    • ; : ;
  • XSS拦截转换

    • node

最后

XSS存在的最根本原因是我们对url中的参数或者用户需要输入的地方没有做一个充分的过滤,所以就会有一些不合法的参数或者输入内容能够到我们的 Web服务器 ,最后用户访问前端页面的时候,就可能将这段代码拉过来又执行了一遍,对我们程序或者我们程序猿本身而言,XSS的防范至关重要。

相关资料

XSS网络攻击 - 原理,类型和实践
XSS 原理和攻防 - Web 安全常识

水平有限,还不能写到尽善尽美,希望大家多多交流,跟春野一同进步!!!

相关文章:

  • yolov5 剪枝、蒸馏、压缩、量化
  • 断崖式难度的春招,可以get这些点
  • MySQL数据库的基础语法总结(1)
  • leetcode 15. 三数之和
  • SSL、TLS应用笔记
  • 学生信息表
  • 三天吃透计算机网络面试八股文
  • 【事务与锁】当Transactional遇上synchronized
  • 为什么 Python 没有 main 函数?
  • IP协议+以太网协议
  • C#基础之面向对象编程(二)
  • 无线WiFi安全渗透与攻防(八)之WEP-Hirte渗透WEP加密
  • 【Vue3实践】(一)Vue3搭建、路由配置与基本语法(模板、条件、循环、事件)
  • C++修炼之练气期第八层——内联函数
  • SpringMVC-0315
  • $translatePartialLoader加载失败及解决方式
  • Android开源项目规范总结
  • Apache的基本使用
  • JavaScript设计模式系列一:工厂模式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JavaWeb(学习笔记二)
  • Java教程_软件开发基础
  • LeetCode29.两数相除 JavaScript
  • PHP 的 SAPI 是个什么东西
  • PHP变量
  • redis学习笔记(三):列表、集合、有序集合
  • Spring-boot 启动时碰到的错误
  • supervisor 永不挂掉的进程 安装以及使用
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 记一次删除Git记录中的大文件的过程
  • 与 ConTeXt MkIV 官方文档的接驳
  • 云大使推广中的常见热门问题
  • 正则表达式
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​520就是要宠粉,你的心头书我买单
  • ​业务双活的数据切换思路设计(下)
  • # Java NIO(一)FileChannel
  • # Panda3d 碰撞检测系统介绍
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (11)MATLAB PCA+SVM 人脸识别
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (安卓)跳转应用市场APP详情页的方式
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (四)c52学习之旅-流水LED灯
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)http-server应用
  • *** 2003
  • **PHP二维数组遍历时同时赋值
  • .net core 依赖注入的基本用发
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net 调用php,php 调用.net com组件 --