DAY55WEB 攻防-XSS 跨站&CSP 策略&HttpOnly 属性&Filter 过滤器&标签闭合&事件触发

知识点:

1、XSS跨站-安全防御-CSP策略

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

3、XSS跨站-安全防御-XSSFilter

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树_csp meta report url html-CSDN博客

XSS跨站-安全防御-HttpOnly

禁止页面的JavaScript访问带有HttpOnly属性的Cookie。

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

https://blog.csdn.net/weixin_42478365/article/details/116597222

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

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

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

实验:手工分析&工具分析

Xss-Lab 标签及常见过滤绕过

环境下载:https://github.com/Re13orn/xss-lab

常用标签:https://www.freebuf.com/articles/web/340080.html

https://xz.aliyun.com/t/4067

工具下载项目:https://github.com/s0md3v/XSStrike

工具使用参考地址:https://blog.csdn.net/weixin_50464560/article/details/120384706

1、无任何过滤

<script>alert()</script>

2、实体化 输入框没有

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

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

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

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

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

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

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

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

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编码(内容检测)

javascript:alert()('http://')

10-20:https://blog.csdn.net/l2872253606/article/details/125638898

黑盒XSS手工分析:

1、页面中显示的数据找可控的(有些隐藏的)

2、利用可控地方发送JS代码去看执行加载情况

3、成功执行即XSS,不能成功就看语句输出的地方显示(过滤)

4、根据显示分析为什么不能执行(实体化,符号括起来,关键字被删除等)

相关推荐
夏幻灵21 小时前
HTML5里最常用的十大标签
前端·html·html5
云小逸21 小时前
【nmap源码解析】Nmap OS识别核心模块深度解析:osscan2.cc源码剖析(1)
开发语言·网络·学习·nmap
冰暮流星21 小时前
javascript之二重循环练习
开发语言·javascript·数据库
风指引着方向21 小时前
自定义算子开发入门:基于 CANN op-plugin 的扩展实践
开发语言
Fairy要carry21 小时前
面试-GRPO强化学习
开发语言·人工智能
Mr Xu_21 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
自不量力的A同学21 小时前
Solon AI v3.9 正式发布:全能 Skill 爆发
java·网络·人工智能
未来龙皇小蓝21 小时前
RBAC前端架构-01:项目初始化
前端·架构
Liekkas Kono21 小时前
RapidOCR Python 贡献指南
开发语言·python·rapidocr
张张努力变强21 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl