【web安全】XSS篇

2024-09-03 09:12
文章标签 安全 web xss

本文主要是介绍【web安全】XSS篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●)
如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦

【web安全】XSS篇

  • 简介
    • 原理
    • 危害
  • 分类
    • 反射性XSS
    • 存储型XSS
    • DOM XSS(特殊的反射XSS)
  • 测试
    • 工具
    • 手工
  • 防护
  • 绕过
    • 前端限制绕过
    • 大小写绕过
    • 双写绕过
    • 编码
    • 注释干扰后台绕过
    • 标签语法替换
    • 提交方式更改
    • 垃圾数据溢出
    • 结合其他漏洞绕过
    • HTTPonly绕过
    • 针对HTML实体化绕过
    • 上传非图片导致的XSS


简介

XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着XSS可以进行“服务端”攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击。

XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言。

原理

可控变量在输入和输出的过程中没有受到充分的过滤,导致参数在输出过程中被浏览器当做代码解析执行

危害

  1. 劫持用户cookie

    伪造身份登陆

  2. 框架钓鱼

    伪造钓鱼页面

  3. 挂马

  4. 键盘记录

  5. 权限维持


分类

反射性XSS

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

存储型XSS

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

XSS弹cookie(前提:浏览器中存储cookie)

DOM XSS(特殊的反射XSS)

不与后台服务器产生数据交互,通过前端的dom节点形成
允许开发者以编程方式访问和修改文档的内容和结构。

DOM节点:

  1. 元素节点:代表HTML或XML文档中的标签(如<div><p>)。
  2. 文本节点:包含元素或属性中的文本。
  3. 属性节点:包含元素的属性(例如‘class=“example”`)。

测试

工具

  1. APPscan、AWVA、Burpsuite

  2. 半自动化工具

    Burpsuite、firefox(hackbar)、XSSER XSSF

手工

最重要的是考虑那里有输入,输入的数据在什么地方输出


防护

  1. 输入的参数进行过滤,对输入进行html实体编码

    htmlspecialchars()函数

    • &——>&amp
    • <——>&lt
    • >——>&gt
    • ""——>&quot
    • '' ——>#039
  2. waf防护

  3. HTTP only设置

    HTTP Only 是一种安全设置,用于保护网站的cookie免受客户端脚本(例如JavaScript)的访问。这是通过在HTTP响应中设置一个特定的cookie属性来实现的。
    具体来说,当一个cookie被标记为"HTTP Only"时,它只能通过HTTP请求进行访问,而不能被客户端脚本访问。这个设置有助于防止跨站脚本攻击(XSS)窃取cookie中的敏感信息。


绕过

前端限制绕过

大小写绕过

通过大小来绕过一些对字符的匹配

<sCRipt>alert('xss')</sCrIPt>

双写绕过

通过嵌套字符在对方检测到非法字符并替换为空的时候剩下的的字符又可以组成一个非法字符绕过检测继续执行语句

<scrscriptipt>alert('xss')</scrscriptipt>

编码

通过将注入语句进行编码来绕过检测

<img src=xonerror="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#121;&#97;&#110;&#103;&#115;&#104;&#117;&#97;&#110;&#103;&#39;&#41;"/>

注释干扰后台绕过

攻击者利用注释来隐藏或干扰恶意脚本的执行。

<sc<!--test-->ript>alert('xss')</scr<!--tshauie-->ipt>

标签语法替换

提交方式更改

垃圾数据溢出

结合其他漏洞绕过

HTTPonly绕过

浏览器未保存帐号密码:需要xss产生登录地
址,利用表单劫持
浏览器保存帐号密码:浏览器读取帐号密码

针对HTML实体化绕过

上传非图片导致的XSS

挖SRC会遇到很多文件上传,例如:头像、客服、认证。可以通过修改文件后缀,文件内容来尝试写入存储XXS。如果是对文件内容做检测,可以在此网站查询后,自行构造需要的文件头,从而绕过检测,上传任意文件。

https://en.wikipedia.org/wiki/List_of_file_sign
atures#文件头对照表

这篇关于【web安全】XSS篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132601

相关文章

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简