pikachu靶场—XSS篇
本文介绍了九种常见的XSS攻击方式及防护方法。主要包括:1)反射型XSS(get/post)通过输入恶意脚本实现弹窗;2)存储型XSS将恶意代码存入数据库;3)DOM型XSS利用客户端DOM树修改;4)XSS盲打在后台实现攻击;5)XSS过滤的绕过方法(大小写、标签等);6)htmlspecialchars函数的转义特性及利用;7)href属性输出的JavaScript协议攻击;8)js输出的闭合
目录
一、反射型XSS(get)
首先我们往输入框中输入payload:<script>alert(1)</script>


点击提交,即可发现有弹窗出现,即为成功。

二、反射型XSS(post)

登录进去之后,我们可以输入payload,让它返回弹窗显示我们用户的cookie值。
<script>alert(document.cookie)</script>

三、存储型XSS
在留言板中直接写入payload,而payload会保存在数据库中,任何用户访问都会自动执行一遍payload代码。

点击提交发现弹窗

而当我们再次刷新页面,或者从别的页面再次返回该页面,payload代码仍旧执行。
四、DOM型XSS
DOM型XSS:攻击发生在客户端,通过修改浏览器端的DOM树触发,无需与服务器进行数据交互。
我们可以发现输入框中的内容发送到a标签的href属性中。

输入payload:javascript:alert(1)

也可以通过闭合,输入payload:'onclick="alert(1)"

五、XSS盲打
我们先将payload:<script>alert(document.cookie)</script>输入到留言板内,再根据提示进入后台地址。

进入后台地址后根据提示的用户名密码登录

点击登录即会弹出弹窗

六、XSS过滤
过滤是常见的防护安全手段,通过关键词过滤可以让许多payload失效。
我们可以采用大小写绕过,标签绕过等...
<SCRIPT>alert(1)</SCRIPT>


<a herf="#" onclick="alert(document.cookie)">

<img src=1 onerror=alert(1)>
该payload表示如果图片加载错误,就会执行后面onerror的代码


七、XSS之htmlspecialchars
htmlspecialchars()函数把预定义的字符转换为HTML实体。
预定义的字符是:
- &(和号) = &
- "(双引号) = "
- '(单引号) = '
- <(小于) = <
- >(大于) = >
我们也可以通过输入'&<>",来排查什么字符被转义了

我们可以发现&(和号)、"(双引号)和<>(小于号、大于号)被转义了,而'(单引号)可以正常使用
则可以构造payload
'onclick='alert(1)'

八、XSS之href输出
href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了<a>标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。
我们可以通过Javascript协议进行构造payload
javascript:alert(1)

九、XSS之js输出
由题目可知我们输入的payload会先进行js检测

由此我们构造payload可以先将这个js闭合,进行绕过
'</script><script>alert(1)</script>

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)