xss基础

第一关:

html部分标签可以解析js

<script>alert (1)</script>

第二关:

可以看到value用双引号闭合了,使用上一关的payload没用,尝试一下闭合这个input

所以使用双引号和>闭合后再加入上一关的payload

bash 复制代码
11"><script>alert(1)</script>"

第三关:

通过查看源码发现是使用了单引号闭合

再使用上一关payload发现它在输入get时使用了**.htmlspecialchars(HTML实体编码)**

这个函数是PHP中的一个编码函数,用于将字符串中的特殊字符转换为对应的HTML实体。它通常用于确保字符串在HTML页面中显示时不会出现意外的效果。

实现原理是将字符串中的特殊字符(如单引号、双引号、反斜杠等)分别替换为对应的HTML实体,如单引号变为&#39;,双引号变为&quot;等。这样,当字符串通过HTML页面输出时,这些特殊字符就会按照正确的编码显示出来。

用途:确保在HTML页面中显示的字符串不会因为特殊字符的问题导致显示异常。例如,在创建表单输入框的标签时,通常需要对用户输入的内容进行转义,以确保输入的内容不会因为特殊字符的问题导致表单无法正确提交。

注意事项:

  1. 虽然.htmlspecialchars($str)函数可以自动处理各种特殊字符,但是如果输入的字符串中包含了CDATA部分(即<!CDATA\[ ]>),那么这个函数可能无法正确处理其中的特殊字符。在这种情况下,需要使用其他方法来处理CDATA部分,或者避免使用特殊字符。

  2. 此函数仅适用于PHP页面输出,如果在非PHP页面输出中使用,可能不会起到预期的效果。

  3. 此函数会自动处理双引号、单引号、反斜杠等特殊字符,但是不会处理其他字符,如&、<、>等。如果需要处理这些字符,可以使用.htmlspecialchars($str, ENT_QUOTES),这将额外处理双引号和单引号。

在HTML中有这样一些事件属性:

尝试使用onclick

需要在输入成功后使用鼠标点击

第四关:

查看网页源码发现使用了双引号闭合....其他和上一关没区别

第五关:

使用上一关的payload发现这关将onclick加了个_,应该是过滤

查看源码:

在HTML的<a>标签中有这样一个属性:herf,可以连接JavaScript

输入:,点击111

第六关:

可以看到也是过滤

尝试一下大小写(看源码//猜):...........它居然没有过滤大小写

第七关:

看来是过滤

大小写也不行了。尝试双写

1"oonnclick="alert(1)

第八关:

....

相关推荐
柒和远方13 分钟前
Phase 7.4 学习博客:为什么多 API 项目需要 Swagger / OpenAPI
前端·后端·架构
张龙68716 分钟前
拼多多开放平台对接踩坑实录:从 CLIENT_ID 配置到 MD5 签名算法的完整填坑指南
前端
GuWenyue23 分钟前
提示词彻底过时?一套上下文工程方案,3步让LLM落地生产,代码直接复用
前端·javascript·人工智能
. . . . .27 分钟前
Egg框架深入
java·开发语言
柒和远方27 分钟前
Phase 7.3 复盘:后台任务不只是“扔进队列”,还要能被看见
前端·后端·架构
2501_9437823531 分钟前
【共创季稿事节】 倒计时器:时分秒选择器与定时器的协同工作
前端·华为·harmonyos·鸿蒙·鸿蒙系统
RainCity37 分钟前
Java Swing 自定义组件库分享(十三)
java·笔记·后端
奶油mm39 分钟前
公司技术债堆积如山,我一人之力用 Vue3 偷换了整个前端架构
前端·vue.js
用户9385156350739 分钟前
深入理解 JavaScript 中的 this 与数据存储的奥秘
前端·javascript
JNX_SEMI1 小时前
AT2659 L1频段多模卫星导航低噪声放大器技术解析
前端·单片机·嵌入式硬件·物联网·硬件工程