06-xss攻防于绕过

news2024/9/24 15:17:28

xss的攻击于防御

攻击的利用方式

1)获取cookie,实现越权,如果是获取到网站管理员的cookie,也可以叫提权。注意尽量尽快退出账号,删除session,让session失效

2)钓鱼网站,模拟真实的网站,获取用户信息(用户名密码等),先告诉账号密码不正确,再跳转到真实网站

3)执行js代码,用于DDOS攻击别的目标站点,在站点A植入xss代码,向站点b发起请求,当用户量大的时候,实现DDOS攻击

4)恶意链接让用户点击,或者直接将网页植入到站点的标签中

将上述代码以短链接(短网址)的方式发送(这也是隐藏链接的方式)

5)当用户点击并访问到恶意站点:,

<a href=“http://xxx/xss.html”>,在xss.html的网页中,可以执行js代码

一方面提供正常的网站功能,另一方面隐藏着DOS或挖矿代码让用户浏览器执行

2、测试方法(攻击方式)

1)反射型xss测试的时候,可以使用扫描器,或者burp进行fuzz

2)存储型xss测试的时候,可以直接把字典中的payload都塞进去,根据弹窗的编号,就知道时哪个。

但是这个容易发现,所有可以试探一下特殊字符是否被过滤。(会被存到数据库)

3)DOM型xss测试,主要以阅读js代码为主。在页面中找输入点的相关dom节点,

在开发者选项中搜索一下根据搜索结果去看是否被相关的js操作,

如果有js操作,就去看我们的输入操作后输出在哪个地方,就按照常规的xss思路进行构建。

<input type="submit" value="<img src=1 οnerrοr=alert(1)"/>

或<input type="botton" value="" οnclick=alert()"/>

扫描器,要么直接对一个URL地址进行xss的payload攻击上存在xss,

另一个思路是对整个网站使用爬虫手段爬取url地址,让后再批量扫描(扫描的核心就是字典)

3、防御手段

1)做实体字符编码,htmlspecialchars(),函数功能就是把特殊符号,比如尖括号,引号转换成实体编码,

这样就不会在输入的地方去干扰页面源码。经过实体字符编码后,用户输入的特殊符号在源代码中就变成编码,

但是在页面输出的时候,还是会显示成原来的样子。当输出的位置在元素内容里面,并且被实体编码后,基本上就没有XSS的可能了。

$content = htmlspecialchars($_GET['content']);

2)正则表达式或字符串判断

实体字符编码如果输出在事件属性中,还是有可能存在绕过的可能性,比如在a标签中,

没有尖括号也没有引号,就有可能被绕过,

如果存在类似这种的情况,需要在链接属性中加上http://或https://的正则表达式来限制。

XSS的绕过方式

1.绕过过滤

1)前端限制,直接用F12开发者选项修改js或html代码即可,或者用burpsuite绕过。

2)字符过滤,双写,大小写绕过,通过注释符绕过,也可以通过换行符绕过。

3)HTML实体转换;

字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器网页时会将这个编号解析还原为字符以供阅读。

javascript:alert("hello")编码为:(使用burp中的docode继续转换)

2、绕过编码

明确浏览器解析的机制,明白机制后,选择对应的编码。

3、其他技巧

1)输入标签间的情况:测试<>是否被过滤或转义,若无则直接

2)输出在script标签内,我们需要在保证内部js语法正确的前提下,去插入我们的payload。

如果我们在输出在字符串内部,测试字符串能否被闭合。如果我们无法闭合包裹字符串的引号,

这个就很难利用了,可能的解决方案:可以控制两处输入且\可用、存在宽字节。

3)输入在HTML属性内:查看属性是否有双引号包裹、没有则直接添加新的事件属性;

有双引号包裹则测试双引号是否可用,可用则闭合属性之后添加新的属性里以HTML实体编码的方式引入任意字符,

从而方便我们在事件属性里以JS的方式构造payload。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1644917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端热门框架【vue框架】】——事件处理与表单输入绑定以及学习技巧,让学习如此简单

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;程序员-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

我们说的数据分析,到底要分析些什么?

作者 Gam 本文为CDA志愿者投稿作品 “我们说数据分析&#xff0c;到底要分析些什么&#xff1f;” 数据分析这个话题自从进入人们的视线以来&#xff0c;这个话题就成为人们茶余饭后的谈资&#xff0c;但是一千个人眼中就有一千个哈姆雷特&#xff0c;就意味着每个人对数据分…

“全国首批EVO+ ICL(V5)临床应用专家”授牌仪式在铭依眼科举行

近日&#xff0c;“全国首批EVO ICL&#xff08;V5&#xff09;新技术临床应用专家”授牌仪式在上海铭依眼科门诊部举行。仪式现场&#xff0c;瑞金医院谢冰教授获得此项荣誉称号。铭依眼科连锁医疗机构创始人吴英、Staar Surgical代表出席仪式现场。 为让近视人群不出国门即可…

AI论文速读 |2024[IJCAI]TrajCL: 稳健轨迹表示:通过因果学习隔离环境混杂因素

题目&#xff1a; Towards Robust Trajectory Representations: Isolating Environmental Confounders with Causal Learning 作者&#xff1a;Kang Luo, Yuanshao Zhu, Wei Chen, Kun Wang(王琨), Zhengyang Zhou(周正阳), Sijie Ruan(阮思捷), Yuxuan Liang(梁宇轩) 机构&a…

什么是水经微图网络加密锁?

水经微图&#xff0c;以下简称“微图”。 我们在《什么是水经微图加密锁&#xff1f;》一文中&#xff0c;为你分享了什么是微图加密锁&#xff0c;以及其使用的方法。 现在&#xff0c;我们再为你分享什么是网络加密锁&#xff0c;以及其使用的方法。 什么是网络加密锁&…

国内怎么观看Netflix网飞奈飞?Netflix会员怎么注册订阅?Netflix会员国内观看Netflix攻略

Netflix 是订阅式流媒体服务&#xff0c;会员可以在联网设备上观看电影和电视节目。 根据您的套餐&#xff0c;您还可以下载电影和电视节目到iOS、Android 或Windows 10 设备上&#xff0c;以便在没有互联网连接时观看内容。 一、在国内怎么观看奈飞&#xff1f; 网络问题 我…

室外巡检机器人——A2型高防护轮式巡检机器人

在科技日新月异的时代&#xff0c;室外巡检机器人犹如一位无畏的守护者&#xff0c;悄然出现在我们的视野之中。它迈着坚定的步伐&#xff0c;穿梭于各种复杂的室外环境&#xff0c;承担着重要的巡检任务。它是科技与智慧的结晶&#xff0c;是保障安全与稳定的前沿力量。让我们…

[1726]java试飞任务规划管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java试飞任务规划管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

机器学习入门之模型性能评估与度量

文章目录 性能评估误差欠拟合和过拟合模型选择与数据拟合 性能度量二分类的混淆矩阵查全率查准率F1分数 P-R曲线ROC曲线AUC 性能评估 机器学习的模型有很多&#xff0c;我们在选择的时候就需要对各个模型进行对比&#xff0c;这时候就需要一个靠谱的标准&#xff0c;能够评估模…

VScode添加c/c++头文件路径

1.设置工作区include path方法&#xff1a; 命令面板 -> 输入c/c 修改配置文件&#xff0c;添加路径&#xff1a; 2.全局路径&#xff1a; 设置 - > 搜索include path

SpringCloud知识点梳理

1. Spring Cloud 综述 1.1 Spring Cloud 是什么 [百度百科]Spring Cloud是⼀系列框架的有序集合。它利⽤Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等,都可以⽤ Spring Boot的开发⻛格…

RFC 791 (1)-导论

目录 浅论 IP是啥 IP可以管啥 操作 范例查看 提示&#xff1a;本系列将会开始RFC文档阅读&#xff0c;这里会给出我的一些笔记 浅论 我们这篇RFC文档描述的是IP和ICMP协议&#xff0c;我们都知道&#xff0c;在传统的OSI七层或者是现在被简化的五层&#xff1a;应用层&…

哪个牌子的电容笔好用?618五款爆款电容笔评测,不踩雷!

随着信息技术不断发展&#xff0c;iPad慢慢成为了现代年轻人工作、娱乐和学业的必备智能工具之一。然而&#xff0c;市场上涌现出众多品牌的电容笔&#xff0c;也存在着大量低质量的电容笔产品。这些产品往往无法达到预期的书写和绘画效果&#xff0c;反而可能导致用户体验不佳…

快速上手RabbitMQ

安装RabbitMQ 首先将镜像包上传到虚拟机&#xff0c;使用命令加载镜像 docker load -i mq.tar 运行MQ容器 docker run \-e RABBITMQ_DEFAULT_USERitcast \-e RABBITMQ_DEFAULT_PASS123321 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 …

商城数据库88张表结构完整示意图61~70(十四)

六十一&#xff1a; 六十二&#xff1a; 六十三&#xff1a; 六十四&#xff1a; 六十五&#xff1a; 六十六&#xff1a; 六十七&#xff1a; 六十八&#xff1a; 六十九&#xff1a; 七十&#xff1a;

LeetCode 15 —— 三数之和

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 首先我们对数组进行从小到大排序&#xff0c;然后遍历数组 [ 0 , n u m s . s i z e ( ) − 3 ] [0,nums.size()-3] [0,nums.size()−3] 作为三元组中的 a a a&#xff0c;由于三元组的索引互不相同&#xff0c…

万物互联-AI边缘计算赋能腾讯无人驾驶车

为把握智能交通系统发展机遇&#xff0c;探索未来城市智能化交通体系&#xff0c;今年3月&#xff0c;腾讯无人驾驶汽车正式落地深圳智能网联交通示范区&#xff1b;该项目将以智能网联测试为基础,以构建自动驾驶生态和未来交通体系为导向&#xff0c;围绕"车、路、云、网…

ABAP开发(3)数据类型和变量

文章目录 1、常用数据类型2、变量定义1、定义基本类型变量2、定义结构体3、定义类型 1、常用数据类型 2、变量定义 在ABAP中&#xff0c;使用关键字DATA定义变量&#xff0c;句号结尾。 1、定义基本类型变量 定义变量ID&#xff0c;字符串&#xff0c;长度20。 DATA ID(20)…

Keepalived实现LVS高可用

6.1 KeepalivedLVS集群介绍 Keepalived和LVS共同构建了一个高效的负载均衡和高可用性解决方案&#xff1a;LVS作为负载均衡器&#xff0c;负责在集群中的多个服务器间分配流量&#xff0c;以其高性能和可扩展性确保应用程序能够处理大量的并发请求&#xff1b;而Keepalived则作…

启发式算法解魔方——python

未完待续&#xff0c;填坑ing…… 魔方操作的表示——辛马斯特标记 辛马斯特标记&#xff08;Singmaster Notation&#xff09;是一种用于描述魔方和类似拼图的转动操作的标记系统。它以大卫辛马斯特&#xff08;David Singmaster&#xff09;的名字命名&#xff0c;辛马斯特…