XSS攻击实战

2023-11-17

一、XSS原理与分类

原理

        XSS攻击全程跨站脚本攻击。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

        与SQL注入类似,XSS也是利用提交恶意信息来实现攻击,但是XSS一般提交的是JavaScript脚本,运行在Web端,就是用户的浏览器。SQL注入提交的SQL命令在后台的数据库服务器执行。

XSS分类

  • 反射型XSS:危害较低,只要当用户访问了包含了恶意脚本的URL,才会被触发;反射性的攻击不会写入网站的数据库,是一次性的攻击。
  • 存储型XSS:该类 XSS 会把攻击代码保存到数据库,当用户访问显示该数据内容的页面,就会被攻击。
  • 基于DOM的XSS:通过修改页面的 DOM 节点形成 XSS,DOM型攻击既可能是反射型,也可能是存储型。

二、攻击实战

    1.反射型XSS(low级别)

     第一步、登录DVWA,选择XSS反射性攻击,选择攻击级别低。

     

 第二步、进行脚本注入攻击

在输入框中输入:

<script>alert(document.cookie)</script>

执行该脚本,会输出用户的cookie,就是会输出用户的密码,我们就可以进行登录账户

说明在Low级别的攻击中,该账户没有进行任何防御

2.反射型XSS(medium级别)

第一步、修改攻击级别为medium

 第二步、进行脚本注入攻击

在输入框中输入:

<script>alert(document.cookie)</script>

我们发现在输入框下放进行了输出,说明在medium级别中,对敏感的JS脚本进行了过滤或者转义

分析源代码,我们发现代码$name = str_replace( '<script>', '',$_GET[ 'name’] ) ,使用str_replace函数把提交内容中的<script>替换了空值

在PHP中,我们学习过格式严格区分大小写,而该函数只匹配小写的script,并没有匹配大写字母,我们尝试将script替换成大写,<SCRIPT>alert(document.cookie)</SCRIPT>,在执行这条脚本,我们成功拿到用户的cookie值

 3.XSS存储型(low级别)

第一步、选择XSS存储攻击,设置攻击级别为低(low),此页面是一个留言板,随意输入内容,可以直接显示在当前页面。 

第二步、进行脚本注入攻击

在输入框中,我们先随意输入,然后执行该脚本攻击

<script>alert(document.cookie)</script>

输入脚本攻击语句之后,我们成功拿到cookie值,说明在低级别中,没有进行任何防护。

 4.XSS存储型(medium级别)

  第一步、进入靶场,修改攻击级别

第二步、进行脚本攻击 

在输入框进行测试,测试在低级别的脚本攻击

<script>alert(document.cookie)</script>

查看源代码,进行分析 ,我们发现在源代码中使用了htmlspecialchars函数。在xss输入框进行脚本攻击已经不可以实现。

 我们发现在name提示框中只是进行简单的小写替换,我们可以尝试替换成大写的,在此进行脚本攻击。

<SCRIPT>alert(document.cookie)</SCRIPT>

但是在name框中进行了字符限制,在这里只进行了前端页面的设置,我们通过开启代理进行绕过,在kali环境中,我们可以使用burpsuite进行绕过。 

5.DOMXSS(low级别)

第一步、进行选择DOMxss靶场,选择攻击级别低

 第二步、进行脚本攻击

 在页面进行右键选择,查看源代码,发现选择框的内容使用了document.write的方式是输出,说明XSS为DOM类型。

我们可以尝试直接在URL进行脚本攻击

 <script>alert(document.cookie)</script>

XSS的DOM的跨站脚本攻击(medium),可以参考以上的方式进行爆破。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSS攻击实战 的相关文章

  • 30天精通Nodejs--第二十天:express-操作mysql

    目录 前言 安装依赖并配置MySQL连接 安装mysql2库 配置连接信息 在Express应用中使用MySQL 结合Express路由实现CRUD操作 整合到主应用 结语 前言 在Node js中使用Expre
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • Codeigniter - 基于帖子禁用 XSS 过滤

    我正在尝试在网站后面设置一个 CMS 但是每当发布数据时 a href 其中帖子数据被废弃 input gt post content true 打开它 但如何关闭它 感谢大家 PVS 如果您想更改默认行为post 方法 您可以扩展核心输入
  • 内网安全:隧道技术详解

    目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一 CS反向连接上线 拿下Win2008 一 使用转发代理上线创建监听器 二 上传后门执行上线 隧道技术 SMB协议 SMB协议介绍
  • 毕业设计:基于python人脸识别系统 LBPH算法 sqlite数据库 (源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 为什么这么多人自学黑客,但没过多久就放弃了(掌握正确的网络安全学习路线很重要)

    网络安全是一个 不断发展和演变 的领域 以下是一个 网络安全学习路线规划 旨在帮助初学者快速入门和提高自己的技能 基础知识 网络安全的 基础知识 包括 网络结构 操作系统 编程语言 等方面的知识 学习这些基础知识对理解网络安全的原理和技术至
  • 【安全】原型链污染 - Hackit2018

    目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下 然后可以试着访问一下 报错是因为里面没内容而已 不影响 准备工作就做好了 解题 代码审计 const express require exp
  • 光波导结构

    摘要 增强现实和混合现实 AR MR 领域的新应用引起了人们对带有光栅区域的光波导系统的越来越多的关注 这些光波导系统用于输入和输出耦合以及扩瞳目的 VirtualLab Fusion为这类系统的仿真和设计提供了几个强大的工具 其中一个是具
  • 【安全】mybatis中#{}和${}导致sql注入问题及解决办法

    0 问题 使用mybatis的时候遇到了 和 可能导致sql注入的问题 1 预先了解 1 底层通过prepareStatement对当前传入的sql进行了预编译 一个 被解析为一个参数占位符 解析之后会将String类型的数据自动加上引号
  • 可以在 CodeIgniter 中“重复”xss-clean 数据吗?

    以下是在 Codeigniter 中清除 XSS 数据的方法 set global xss filtering在配置中TRUE use xss clean use xss clean作为验证规则 将第二个参数设置为TRUE in this
  • 如何在没有 Spring Boot 的情况下阻止或防止 Spring MVC 4 应用程序的 XSS

    如何保护 清理采用原始 JSON 主体并通常输出 JSON 响应且不使用 Spring Boot 的应用程序 我只看到一个可能有效并使用 JsonComponent 的好例子 如果我们不使用 jsoncomponent 如何过滤掉请求以从整
  • PHP_SELF 和 XSS

    我发现一篇文章声称 SERVER PHP SELF 容易受到 XSS 攻击 我不确定我是否理解正确 但我几乎可以肯定这是错误的 这怎么可能容易受到 XSS 攻击
  • ValidateRequest 错误还是 SQL Server Bug?

    我正在读这个article http software security sans org blog 2011 07 22 bypassing validaterequest in asp net 它说 该字符用值 uff1c 表示 如果将
  • 如何修复java中反映的XSS

    我收到了强化报告 其中显示了来自下面第二行的 XSS 反射缺陷 String name request getParameter name response getWriter write 姓名 姓名 给出的建议 向 Web 客户端显示的所
  • PHP XSS 预防白名单

    我的网站使用所见即所得编辑器 供用户更新帐户 输入评论和发送私人消息 编辑器 CKEditor 非常适合只允许用户输入有效的输入 但我担心通过 TamperData 或其他方式注入 我如何在服务器端控制这个 我需要将特定标签列入白名单 b
  • CodeIgniter - 为什么使用 xss_clean

    如果我正在清理我的数据库插入 并且还转义我编写的 HTMLhtmlentities text ENT COMPAT UTF 8 是否还需要使用 xss clean 过滤输入 它还有什么其他好处 xss clean http docs gip
  • https 安全 cookie 是否可以防止 XSS 攻击?

    https 连接是否可以保护 cookie 并防止 XSS 攻击 我有一个简单的博客 允许用户输入 JavaScript 代码作为输入 我希望允许用户输入 Javascript 同时仍然防止 XSS 攻击和 cookie 窃取 https
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • 如何安全地使用 fckEditor,而不存在跨站脚本风险?

    此链接描述了使用 fckEditor 对我的应用程序的利用 http knitinr blogspot com 2008 07 script exploit via fckeditor html http knitinr blogspot

随机推荐

  • NoteExpress安装时问题解决

    每次安装软件我都不能一次性成功 这次遇见的是NoteExpress和Word权限不一致的问题 版本 win10 office2019 网上有很多方法 其中CSDN博主 令令狐大侠 总结郭一篇 原文链接 https blog csdn net
  • 【华为OD机试】工号不够用了怎么办 (C++ Python Java)2023 B卷

    题目描述 3020年 空间通信集团的员工人数突破20亿人 即将遇到现有工号不够用的窘境 现在 请你负责调研新工号系统 继承历史传统 新的工号系统由小写英文字母 a z 和数字 0 9 两部分构成 新工号由一段英文字母开头 之后跟随一段数字
  • 关于split截取字符时,问号的特殊情况

    有一段字符 tring str gjjxxcx gjjxx cx jsp zgzh 1010024000019 如果使用如下代码 String strArray str split gjjxx cx jsp System out print
  • 基础算法题——带分数(全排列,工具库)

    前言 这道题理解起来不难 但是要找到一个合适的方法对题目进行优化 就会相对麻烦些 蓝桥杯的题 真的到处都是坑的感觉 带分数题目 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 100 可以表示为带分数的形式 100 3 6
  • 表单注入——sqli-labs第11~16关

    目录 第11关 0 万能账号 密码的前提 1 判断是否POST注入 2 猜测后台SQL语句 3 判断闭合符 4 查询列数 5 找显示位 6 查库名 7 查表名 8 查列名 9 找账号密码 第12关 第13关 第14关 1 2 3 4 5 6
  • Leetcode148.排序链表——排序问题详解

    文章目录 引入 归并排序解法 其他 引入 148 排序链表题目如下 148 排序链表 在 O n log n 时间复杂度和常数级空间复杂度下 对链表进行排序 示例 1 输入 4 gt 2 gt 1 gt 3 输出 1 gt 2 gt 3 g
  • 工作中常用且容易遗忘的css样式整理,建议收藏

    1 文字超出部分显示省略号 单行文本的溢出显示省略号 一定要有宽度 p width 200rpx overflow hidden text overflow ellipsis white space nowrap 多行文本溢出显示省略号 p
  • Linux(驱动编程)(调试技术)(imx6ull)

    调试技术 1 在写驱动程序时函数未包含头文件 在linux内核源码driver char目录下输入命令 grep XXXX nrw 查看次函数在那个 c里用过 然后在vscode界面下按alt p搜索这个 c就可以参考这个 c的头文件 2
  • docker笔记(二)之镜像加速器

    国内从 Docker Hub 拉取镜像有时会遇到困难 此时可以配置镜像加速器 国内很多云服务商都提供了国内加速器服务 例如 阿里云加速器 点击管理控制台 gt 登录账号 淘宝账号 gt 右侧镜像中心 gt 镜像加速器 gt 复制地址 网易云
  • 从原理到应用,人人都懂的 ChatGPT 指南

    如何充分发挥ChatGPT潜能 成为了众多企业关注的焦点 但是 这种变化对员工来说未必是好事情 IBM计划用AI替代7800个工作岗位 游戏公司使用MidJourney削减原画师人数 此类新闻屡见不鲜 理解并应用这项新技术 对于职场人来说重
  • Pytorch实现多特征输入的分类模型 代码实操

    初学者学习Pytorch系列 第一篇 Pytorch初学简单的线性模型 代码实操 第二篇 Pytorch实现逻辑斯蒂回归模型 代码实操 第三篇 Pytorch实现多特征输入的分类模型 代码实操 文章目录 初学者学习Pytorch系列 前言
  • 基于Java发起HTTP请求实现文件的上传

    需要用到的包
  • wandb快速上手、使用心得(超好用的Tensorboard高替品)

    这里写目录标题 1 wandb介绍 2 快速上手 3 使用心得 3 1 一张图展示两条线 3 2 想要科学上网和wandb一起使用 离线使用 3 3 未完待续 1 wandb介绍 wandb地址 wandb Wandb Weights Bi
  • 构造一个死循环的shell脚本

    while do done
  • springBoot service 事务注解@Transactional不起作用的解决

    在springBoot使用事物时 发现事务并没有正常执行 没有进行回滚 Transactional public void add String companyName String name throws MyException comp
  • C++模板全特化(具体化)与偏特化(部分具体化)详解(转)

    1 模板简介 模板就是实现代码重用的一种机制 它可以实现类型参数化 即把类型定义为参数 从而实现了真正的代码可重用性 模板编程和函数重载可以实现C 静态多态 也叫编译时多态 模版可以分为两类 一个是 函数模版 另一个是 类模版 2 模板特化
  • 利用Vulnhub复现漏洞 - OpenSSH 用户名枚举漏洞(CVE-2018-15473)

    OpenSSH 用户名枚举漏洞 CVE 2018 15473 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 漏洞复现 CVE 2018 15473 Exploit Vulnhub官方复现教程 https vulhub org e
  • Option类型:C++(std::optional)、Rust(Option)、Go(gob.OptionalValue)

    当我们在实现一个函数 fn point 该函数会有返回的point指针有可能是null 那么函数的调用者必须显示的进行判断 避免出现null point引发的程序崩溃 Rust作为强调系统安全的语言 自然是从语言层面上给予了开发者莫大的帮助
  • 2020年集五福攻略:集五福不再难搞

    2020年的春节就要到了 让人期待的支付宝集五福活动也会随之而来 那么 2020支付宝集五福什么时候开始 支付宝的集福卡活动不是第一届了 2017年的支付宝集五福是1月18日开始 2018年的支付宝集五福是2月6日开始 2019年支付宝集五
  • XSS攻击实战

    一 XSS原理与分类 原理 XSS攻击全程跨站脚本攻击 恶意攻击者往Web页面里插入恶意Script代码 当用户浏览该页之时 嵌入其中Web里面的Script代码会被执行 从而达到恶意攻击用户的目的 与SQL注入类似 XSS也是利用提交恶意