专栏首页玄魂工作室Kali Linux Web渗透测试手册(第二版) - 9.1 - 如何绕过xss输入验证

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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kali Linux Web渗透测试手册(第二版) - 9.7

    发人员在编程输入验证代码时,往往把重点放在url和请求数据中,经常会忽略这样一个事实:整个请求的参数都可以被修改,所以cookie等http头很容易被插入恶意p...

    用户1631416
  • Hacker基础之工具篇 braa

    但与net-snmp的snmpget或snmpwalk不同,它可以同时查询数十个或数百个主机,并且可以在单个进程中查询

    用户1631416
  • CTF实战12 任意文件包含漏洞

    该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

    用户1631416
  • Python Web Flask源码解读(四)——全局变量

    Flask中全局变量有current_app、request、g和session。不过需要注意的是虽然标题是写着全局变量,但实际上这些变量都跟当前请求的上下文环...

    阳仔
  • mac homebrew

    Homebrew 会将套件安装到独立目录,并将文件软链接至/usr/local 。

    lin_zone
  • 【STM32H7】第13章 RL-TCPnet V7.X之创建多个TCP客户端

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=95243

    armfly
  • 驾考小程序

    https://gitee.com/kesixin/QuestionWechatApp.git

    程序源代码
  • 【STM32F407】第13章 RL-TCPnet V7.X之创建多个TCP客户端

    本章节为大家讲解RL-TCPnet的TCP多客户端实现,因为多客户端在实际项目中用到的地方还挺多,所以我们也专门开启一个章节做讲解。另外,学习本章节前,务必要优...

    armfly
  • 【STM32F429】第13章 RL-TCPnet V7.X之创建多个TCP客户端

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=95243

    armfly
  • vueRouter-动态路由匹配 原

    我们经常需要把某种模式匹配到的所有路由,全都映射到同一个组件,例如,我们有一个User组件,对于所有ID各不相同的用户,都要使用这个组件来渲染,那么我们可以在v...

    tianyawhl

扫码关注云+社区

领取腾讯云代金券