内容提要
XSS-Labs是一套基于PHP的XSS靶场,共有20关,通过闯关的方式体验各种XSS漏洞利用方式。文章介绍了前几关的XSS漏洞利用方式,包括文本解析为HTML、input标签value注入、htmlspecialchars()的弱点等。同时提到了XSS攻击的注入点和执行JS代码的方式。
关键要点
-
XSS-Labs是一套基于PHP的XSS靶场,共有20关,体验各种XSS漏洞利用方式。
-
前两关是XSS基本原理的应用,没有防御措施。
-
第一关通过文本解析为HTML,成功注入<script>alert(1);</script>。
-
第二关利用input标签的value注入,发现value值未被转义。
-
第三关探讨htmlspecialchars()的弱点,PHP 8.1.0以下版本未转义单引号。
-
第四关未过滤双引号,利用onmouseover属性注入JavaScript。
-
第五关利用href属性的URI特性,注入JavaScript代码。
-
第六关通过大小写区分绕过字符过滤,成功注入JavaScript。
-
第七关利用字符串替换的漏洞,双写关键词绕过过滤。
-
第八关使用HTML字符实体绕过javascript的过滤。
-
第九关通过注释绕过简单的合法链接检测。
-
第十关通过隐藏表单字段注入JavaScript代码。
-
第十一关通过Referer字段注入JavaScript代码。
-
第十二关通过自定义浏览器UA注入JavaScript代码。
-
第十三关通过设置Cookie注入JavaScript代码。
-
第十四关尝试在exif信息中注入payload。
-
第十六关利用换行符代替空格,成功注入JavaScript。
-
第十五关利用Angular ng-include引入可执行的HTML。
-
第十七到二十关利用Flash,现已失去意义。
-
XSS攻击依然广泛存在,核心在于找到注入点并执行JavaScript代码。