Pikachu靶场-Cross-Site Scripting
2022-12-29 22:44:37 Author: xz.aliyun.com(查看原文) 阅读量:16 收藏

输入payload1:

'><img src="#" onmouseover="alert('xss')">

可以发现我们的输入变成了

当鼠标移动到图片位置就会触发弹窗

攻击过程:输入payload-》点击’请说出你的伤心往事‘-》点击’有些费尽心机...‘-》鼠标移动到图片位置

输入payload2:

' onclick="alert('xss')">

可以发现我们的输入变成了

点击’有些费尽心机...‘-》点击‘就让往事都随风’就会触发弹窗

7.xss之盲打

xss盲打是一种攻击场景。我们输出的payload不会在前端进行输出,当管理员查看时就会遭到xss攻击。

输入常规的payload:

<script>alert(/xss/)</script>

,点击提交后发现这里提示一段文字,应该是直接打到后台了,找到后台,登录进去看看

后台地址是/xssblind/admin_login.php登录即可触发xss

8.xss之过滤

输入'<script>” 特殊字符,看输出结果字符被过滤,查看前端源码 输入与输出结果不一致

查看后端源码,发现对 <script 标签进行了过滤,替换为空格,但是只是对小写进行了替换

尝试大小写绕过

<SCRIPT>alert(/xss/)</sCRIpt>

成功弹窗

当script为过滤关键词时,可以尝试其他的payload,如

<img src=x onmouseover="alert(/xss/)">
<img src=x onerror="alert(/xss/)">

点击图片的位置触发弹窗

9.xss之htmlspecialchars

htmlspecialchars()函数定义及用法

在php中,htmlspecialchars()函数是使用来把一些预定义的字符转换为HTML实体,返回转换后的新字符串,原字符串不变。如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志;

被转换的预定义的字符有:

&:转换为&

":转换为"

':转换为成为 '

<:转换为<

>:转换为>

输入特殊字符' " < > ,查看前端源码,我们看到 " < > 都进行了html实体转码

但是没有对 ' 进行实体转码

可以使用单引号构造payload。

#' onclick='alert(/xss/)

可以看到我们的输入变成了

第一个单引号闭合href属性的双引号,第二个单引号闭合href属性的闭合双引号

点击语句即可触发弹窗

10.xss之href输出

输入测试代码#' onclick='alert(/xss/) ,查看前端源码,发现单引号没有用了

在a标签的href属性里面,可以使用javascript协议来执行js,可以尝试使用伪协议绕过。

javascript:alert(/xss/)

点击即可触发弹窗

11.xss之js输出

输入测试代码

<script>alert(/xss/)</script>

查看源码

输入的代码被生成在js中并赋值给$ms。我们的输入被带入到js中,可以闭合

</script><script>alert(/xss/)</script>

';alert(1);//

成功弹窗

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

先知社区:


文章来源: https://xz.aliyun.com/t/11994
如有侵权请联系:admin#unsafe.sh