【CTF】XSS攻击(二)

XSS漏洞的检测与防御
1、检测
手工检测
手工检测重点要考虑数据输入的地方,且需要清楚输入的数据输出到什么地方。

在检测的开始,可以输入一些敏感字符,比如“<、>、()”等,提交后查看网页源代码的变化以发现输入被输出到什么地方,且可以发现相关敏感字符是否被过滤。

手工检测结果相对准确,但效率较低。

工具检测
常用工具有AVWS(Acunetix Web Vulnerability Scanner)、BurpSuite等。还有一些专门针对XSS漏洞的检测工具,如:XSSer、XSSF(跨站脚本攻击框架)、BeEF(The Browser Exploitation Framework)等。

2、防御
●使用黑名单进行

●对HTML标签或特殊字符进行过滤

●使用内容安全的CSP

●使用设计上就会自动编码的框架,如:OWASP ESAPI、React JS、JSOUP等,对于JAVA而言,可以使用ESAPI.encoder().encodeForHTML()对字符串进行HTML编码。

●对于反射型和存储型XSS,可以在数据返回给客户端浏览器时,将敏感字符进行转义,如:将单引号进行编码替换(十进制编码’、十六进制编码’、HTML编码&apos、Unicode编码\u0027等)。

●对于DOM型XSS,可以使用上下文敏感数据编码。如:在PHP中的htmlspecialchars()、htmlentities()函 数可以将一些预定义的字符转换为HTML实体,如:小于转化为<、大于转化为>、双引号转化为”、单引号转化为&apos、与转化 为&等。

●启用浏览器的HttpOnly特性可以组织客户端脚本访问cookie。如:在PHP中可以通过下面的代码设置cookie并启用HttpOnly。

<?php
Header("Set-Cookie:password=123456;httponly",false);
>

原创文章,作者:修行,如若转载,请注明作者昵称:修行及出处:https://www.fjsqywlkj.top/computer/information_security/4506.html

(0)
上一篇 2024年5月7日
下一篇 2024年5月28日

相关推荐

发表回复

登录后才能评论
在线客服 QQ交流群
返回顶部