XSS闯关攻略:从基础到进阶
需积分: 0 154 浏览量
更新于2024-08-04
收藏 1KB MD 举报
"XSS闯关练习的详细笔记,包含了不同级别的XSS攻击payload实例和解决策略。"
在Web安全领域,XSS(Cross-Site Scripting)是一种常见且危险的攻击方式,允许攻击者在受害者的浏览器上执行恶意脚本。这个记录详细描述了一个名为“BUUCTF”的XSS闯关挑战,通过一系列不同级别的关卡,展示了如何构建和绕过不同的XSS防护机制。
### Level 1 - 没有任何过滤
这一关是最基础的XSS攻击,没有任何过滤措施。攻击者可以使用简单的payload `<script>alert(1)</script>`,在目标页面内注入JavaScript代码,导致弹出警告对话框。
### Level 2 - 前面有引号和input标签
这一关中,输入被包裹在引号内,并与`<input>`标签一起使用。为了绕过过滤,攻击者需要在输入结束引号后插入恶意脚本,然后关闭`<input>`标签。有效payload为:`"?keyword=/><script>alert(1)</script>&submit=%E6%90%9C%E7%B4%A2"`。
### Level 3 - 特殊字符转义
在第三关,尖括号被转义,因此攻击者需要使用其他方法触发JavaScript。这里利用了`onfocus`事件,当用户点击搜索框时执行脚本。payload是:`"?keyword=%27onfocus=%27alert(1);%27&submit=%22%E6%90%9C%E7%B4%A2%22"`。需要注意的是,HTML标签内部元素之间通常不使用分号,但在某些情况下可能存在,但此关卡中需去除分号。
### Level 4 - 环境问题
由于环境过期,第四关的具体情况无法记忆,因此没有提供解决方案。
### Level 5 - 替换关键词
在这一关,`script`被替换为`scr_ipt`,`on`被替换为`o_n`。尽管如此,攻击者依然可以使用JavaScript伪协议,如`javascript:`,绕过过滤。有效payload是:`"?keyword=123"/><ahref="javascript:alert('xss');">test</a>"`。
### Level 6 - 关键词大小写过滤
这一关`href`被替换为`hr_ef`,而`src`被替换为`sr_c`。但是,由于过滤不考虑大小写,攻击者只需将`href`改为`hREf`即可。payload是:`"?keyword=123"/><ahREf="javascript:alert('xss');">test</a>"`。
### Level 7 - 关键词替换为空
最后,`script`、`href`和`src`都被替换为空。然而,攻击者可以通过双写关键词来绕过过滤,如`hrhrefef`和`javascscriptript`。有效payload为:`"?keyword=123"/><ahrhrefef="javascscriptript:alert(1)">test</a>"`。
这些关卡展示了XSS攻击的多样性,以及攻击者如何通过理解HTML和JavaScript的工作原理,以及利用过滤系统的漏洞来实现攻击。在实际的Web开发中,重要的是实施严格的输入验证和输出编码,以防止XSS攻击。
2018-11-09 上传
2024-12-23 上传
2024-12-23 上传
2024-12-23 上传
H。J
- 粉丝: 0
- 资源: 2
最新资源
- LUA5.33简化版支持库1.1版(lua5.fne)-易语言
- frontendman.github.io:Web开发
- FirstRepo:这是我们的第一个存储库
- apache-ivy-2-5-0.rar
- 手机脚本执行器安装包.zip
- 记录爬虫学习总结,对拉勾招聘信息、豆瓣电影短评、知乎用户画像等数据进行网络爬取实战练习,并基于爬取数据利用Pytho.zip
- dkpro-argumentation-minimal:DKPro Argumentation Mining - 带有用于演示目的的类型系统的“最小”库
- 离心泵水动力学噪声参数测控系统的设计与分析.rar
- jChat1毕业设计—(包含完整源码可运行)..zip
- FacEssential:FacEssential是PMMP的核心,它收集创建派系服务器所需的所有插件。 它是由Clouds#0667从头开始创建的
- 记录 Python 学习之路,Python3 简明教程入门,Python 爬虫相关实战和代码.zip
- 软件设计师真题16-18年.rar
- 指针操作支持库2.0版(PTlib.fne)-易语言
- estourando_baloes_JS:使用Java脚本创建游戏
- nn_api:在Windows上使用NVidia CUDA的神经网络API
- generate-mybatis-project:java持久层的mybatis实现代码生成工具