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

【第55课】XSS防御HttpOnlyCSP靶场工具等

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

# 知识点
1、XSS跨站-安全防御-CSP策略
2、XSS跨站-安全防御-HttpOnly
3、XSS跨站-安全防御-XSSFilter

常用标签:xss 常用标签及绕过姿势总结 - FreeBuf网络安全行业门户
https://xz.aliyun.com/t/4067

1.XSS跨站-安全防御-CSP

CSP (Content Security Policy 内容安全策略)  各种语言都存在,只不过设置不同
内容安全策略是一种可信白名单机制,来限制网站中是否可以包含某来源内容。
该制度明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单(当外部资源不在白名单内,禁止网站访问外部资源),
它的实现和执行全部由浏览器完成,开发者只需提供配置。
禁止加载外域代码,防止复杂的攻击逻辑。
禁止外域提交,网站被攻击后,用户的数据不会泄露到外域。
禁止内联脚本执行(规则较严格,目前发现 GitHub 使用)。
禁止未授权的脚本执行(新特性,Google Map 移动版在使用)。
合理使用上报可以及时发现XSS,利于尽快修复问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验:

开启CSP时XSS的加载情况

在这里插入图片描述
在这里插入图片描述
XSS平台也不会接收到相关cookie信息

未开启CSP时XSS的加载情况(跟常规一样,直接获取cookie)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
绕过:有但鸡肋
https://xz.aliyun.com/t/12370
Web安全2.3:CSP安全策略、Cookie、Session、同源策略、HTML DOM树_同源策略与内容安全策略的区别-CSDN博客

2. XSS跨站-安全防御-HttpOnly

禁止页面的JavaScript访问带有HttpOnly属性的Cookie。
php和java都有该设置PHP.INI设置或代码引用,三种方式设置:
-session.cookie_httponly =1
-ini_set("session.cookie_httponly", 1);
-setcookie('', '', time() + 3600, '/xss', '', false, true);

实验:

开启HttpOnly时XSS窃取Cookie的加载情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

未开启HttpOnly时XSS窃取Cookie的加载情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
绕过:有但鸡肋
(1) CVE-2012-0053
(2) PHPINFO页面/
(3) Flash/Java
参考文章:XSS攻击之HttpOnly绕过-CSDN博客

思路:不获取Cookie采用方式(钓鱼,浏览器攻击框架等)

3. XSS跨站-安全防御-XSSFilter(过滤器的意思)

检查用户输入的数据中是否包含特殊字符, 如<、>、’、”,进行实体化等。

实验:手工分析&工具分析
Xss-Lab 标签及常见过滤绕过
环境下载:GitHub - Re13orn/xss-lab: 20 level xss lab by network!!!
常用标签:xss 常用标签及绕过姿势总结 - FreeBuf网络安全行业门户
https://xz.aliyun.com/t/4067
工具下载项目:GitHub - s0md3v/XSStrike: Most advanced XSS scanner.
工具使用参考地址:xss测试工具xsstrike(基于python3)-CSDN博客

1、无任何过滤

<script>alert()</script>

在这里插入图片描述
在这里插入图片描述

2、实体化 输入框没有

">  <script>alert()</script>  <" 
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、全部实体化 利用标签事件 单引号闭合

' οnfοcus=javascript:alert() '

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、全部实体化 利用标签事件 双引号闭合

" οnfοcus=javascript:alert() "

在这里插入图片描述
在这里插入图片描述

5、事件关键字过滤 利用其他标签调用 双引号闭合

"> <a href=javascript:alert()>xxx</a> <"

在这里插入图片描述

在这里插入图片描述

6、利用大小写未正则匹配

"> <sCript>alert()</sCript> <"

在这里插入图片描述

7、利用双写绕过匹配

"> <a hrehreff=javasscriptcript:alert()>x</a> <"

在这里插入图片描述
在这里插入图片描述

8、利用Unicode编码

&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0029

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个编码浏览器地址是能够识别的,但是在前端代码里不一定能够识别
在这里插入图片描述
在这里插入图片描述

9、利用Unicode编码(内容检测)

&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0029;('http://')

在这里插入图片描述
在这里插入图片描述

10-20

xss-labs靶场实战全通关详细过程(xss靶场详解)-CSDN博客

黑盒XSS手工分析:
1、页面中显示的数据找可控的(有些隐藏的)
2、利用可控地方发送JS代码去看执行加载情况
3、成功执行即XSS,不能成功就看语句输出的地方显示(过滤)
4、根据显示分析为什么不能执行(实体化,符号括起来,关键字被删除等)实体化基本绕过不了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何使用ssm实现游戏攻略网站的设计与实现+vue
  • 测试员阿聪的破局之路:从迷茫到帝都站稳脚跟,大佬亲授良方
  • 想学网络,为什么要先学数通?
  • 【图机器学习系列】(二)从传统机器学习角度理解图(一)
  • 正交试验法(或PICT)来设计测试用例
  • 如何使用ssm实现在线云音乐系统的设计与实现
  • 探索提示工程 Prompt Engineering的奥妙
  • 通过 OpenAI Embedding 接口计算相似度
  • 四川财谷通,信息科技引领者!
  • GAMES101——作业5 光线与三角形相交(菲涅尔反射率)
  • Java笔试面试题AI答之线程(11)
  • 解决 Navicat 删除唯一键(unique)后保存失败的问题:1-near “)“:syntax error
  • arthas源码刨析:arthas 命令粗谈(3)
  • MySQL数据库锁机制(全面讲解)
  • 七、SPA单页面实现SEO优化之SSR服务器渲染
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【mysql】环境安装、服务启动、密码设置
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Angular2开发踩坑系列-生产环境编译
  • C++入门教程(10):for 语句
  • Java应用性能调优
  • js作用域和this的理解
  • Python学习之路13-记分
  • Vue.js 移动端适配之 vw 解决方案
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 从输入URL到页面加载发生了什么
  • - 概述 - 《设计模式(极简c++版)》
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​ArcGIS Pro 如何批量删除字段
  • ​iOS实时查看App运行日志
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #include到底该写在哪
  • #预处理和函数的对比以及条件编译
  • (层次遍历)104. 二叉树的最大深度
  • (二十六)Java 数据结构
  • (四)linux文件内容查看
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (五)activiti-modeler 编辑器初步优化
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转载)Google Chrome调试JS
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net 调用php,php 调用.net com组件 --
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .Net接口调试与案例
  • /3GB和/USERVA开关
  • @Autowired和@Resource装配
  • @EnableConfigurationProperties注解使用
  • @selector(..)警告提示
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [ 转载 ] SharePoint 资料
  • [1525]字符统计2 (哈希)SDUT
  • [20170728]oracle保留字.txt