目录

一、反射型XSS(get)

二、反射型XSS(post)

三、存储型XSS

四、DOM型XSS

五、XSS盲打

六、XSS过滤

七、XSS之htmlspecialchars

八、XSS之href输出

九、XSS之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实体。

预定义的字符是:

  • &(和号)   =    &amp
  • "(双引号) =   &quot
  • '(单引号) =    '
  • <(小于)   =    &lt
  • >(大于)   =    &gt

我们也可以通过输入'&<>",来排查什么字符被转义了

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

则可以构造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>

 

 

Logo

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

更多推荐