Kali Linux Web渗透测试手册(第二版) - 9.1 - 如何绕过xss输入验证

标记红色的部分为今日更新内容。

9.0、介绍

9.1、如何绕过xss输入验证

9.2、对跨站脚本攻击(xss)进行混淆代码测试

9.3、绕后文件上传限制

9.4、绕过web服务器的CORS限制

9.5、使用跨站点脚本绕过CSRF保护和CORS限制

9.6、利用HTTP参数污染

9.7、通过HTTP头利用漏洞


9.0、介绍

到目前为止,在本书中,我们已经确定并利用了一些漏洞,这些漏洞是比较容易利用的,也就是说,在利用这些漏洞时,我们并没有被任何预防机制所拦截,比如说防火墙。

在实际渗透测试中,开发人员在努力的构建一个强壮且安全的应用程序,以至于漏洞不是很容易被发现的。要么该应用程序不存在漏洞,要么很难发现漏洞。在这种情况下,我们需要找到相关工具来攻破这种复杂的情况,并且能够识别和利用开发人员认为他们已经防止了的漏洞,可能不是以最优的方式来防护的。

在本章中,我们将讨论集中绕过防护和安全机制的方法,这些机制不会减少漏洞,而是试图隐藏它们或使他们的利用程度更加复杂化,当然这并不是解决安全问题的理想方法。


9.1、如何绕过xss输入验证

开发人员针对xss会进行输入验证,最常见的方法就是设置黑名单,过滤敏感字符。而这种验证方法可能会遗漏掉一些能攻击的字符,所以存在绕过方法。

下面的教程就讲述一些绕过黑名单验证的一些方法。

实战演练

我们将使用dvwa作为实验靶机,并设置安全类型为中。接着设置好burp代理:

1、首先,我们查看一下敏感字符如何被过滤的。如下截图所示,当尝试xss时,html标签会被移除。

2、我们将该请求发送到repeter模块中,进行重放:

3、我们有很多方法绕过这种限制,比如通过改变大小写的方式,将script改为sCriPt即可绕过:

4、根据repeater的回包可以判断xss成功执行:

原理剖析

在这节教程中,我们通过一个简单的方法绕过了脆弱的输入验证,因为大多数编程语言比较字符串都区分大小写,所以这个简单的黑名单无法挡住xss攻击。

另请参阅

使用大小写、各种编码、许多不同的html标签和事件触发xss的方法有很多,所以几乎不可能创建一个全面的黑名单。我们还可以这样绕过:

1、使用不同的html标签,比如<img>,<video>, 和 <div>,或将代码放入src参数或使用事件触发,比如onload、onerror、onmouseover等。

2、嵌套多个标签,比如<scr<script>ipt>,在这个payload中<script>若被删除,前后会重新拼合成一个script标签

3、在payload中尝试不同的编码也可绕过,比如我们将<script>进行url编码,编码后为%3c%73%63%72%69%70%74%3e

想查看更多绕过方法,可以查看:

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

原文发布于微信公众号 - 玄魂工作室(xuanhun521)

原文发表时间:2019-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券