前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 9.2 - 对跨站脚本攻击(xss)进行混淆代码测试

Kali Linux Web渗透测试手册(第二版) - 9.2 - 对跨站脚本攻击(xss)进行混淆代码测试

作者头像
Power7089
发布2019-07-25 17:05:28
6100
发布2019-07-25 17:05:28
举报

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

在前面的小节中,我们遇到了一种过滤机制,他会自动删除一些常见的JavaScript标签。

<script> 不是XSS攻击的唯一标签,另外JavaScript代码在大小写和结构方面和HTML具有相似性,一些过滤器会去试图限制一些JavaScript代码,如:alert,cookie和document等。

在这小节中,我们将学习一种比较有趣的方法,即使用JSFuck来混淆代码(http://JSFuck.com)。

实战演练

在这小节中,我们将使用到已包含在OWASP BWA中的一个应用程序作为虚拟机:

1. 首先,我们在应用程序处的XSSmh菜单处选择XSS沙盒。在这里,我们可以使用自定义类型设置一个易受XSS攻击的字段。

2. 在我们这个例子中,我们将使用最后一个级别:区分大小写,匹配关键字,删除重复字段。

3. 在参数设置中,我们需要加入一个关键字或字符匹配的黑名单,如:alert,doucument,cookie,href,location,src。这将极大的限制攻击者利用应用程序的行为。

4. 具体输入部分,如下图所示:

5. 现在测试一个普遍使用的弹框出COOKIE信息的命令,如下:

正如你所见,它并不会执行弹框。这是因为你刚才设置的过滤机制的原因。

6. 为了绕过这种保护,我们需要找到一种方法来混淆代码,使其得到验证机制的批准,并且仍然被浏览器识别和执行。这就是JSFuck发挥作用的地方了。在你的浏览器中,打开http://jsfuck.com这个网站。该站点描述了这种语言以及它是如何生成的只有六个不同字符的JavaScript代码,也就是:

  • [
  • ]
  • (
  • )
  • +
  • !

7. 你还会发现这个站点有一个表单可以将普通JavaScript转换为JSFuck表示。尝试转换alert(document.cookie),这将是我们需要使用的攻击载荷。如下面的屏幕截图所示,这个简单的字符串生成了将近13000个字符的代码,这对于GET请求来说太多了,我们需要找到一种方法来减少这个数量:

8. 我们所能做的是不混淆整个有效载荷,而只是绕过限制的必要部分。确保Eval Source选项没有设置,并混淆以下字符串:

  • ert
  • d
  • e

9. 现在,我们将把混淆的代码集成到一个完整的有效载荷中。由于JSFuck输出被JavaScript引擎解释为文本,因此我们需要使用eval函数来执行它。最终有效载荷如下:

<script>eval("al"+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+"('XSS

10. 在注入字符串中插入有效负载并单击Inject。代码的执行方式如下:

原理剖析

通过混淆有效载荷,我们能够绕过基于单词和字符识别的安全机制。我们选择使用JSFuck语言来混淆代码,因为它实际上就是JavaScript。

JSFuck通过操作布尔值和预定义常量来形成可打印字符来混淆代码,例如,获得字符a:

  1. a是false的第二个字母,它也可以表示为数组的第二个元素:false[1]
  2. 它也可以表示为(false+[])[1]
  3. 同样,false作为布尔值,是对空数组的非操作![]。因此,上面的表达式也可以是(![]+[])[1]。
  4. 数字1也可以是+true,因此(![]+[])[+true]
  5. 最后,我们都知道真是假的非操作,那么!![],最后一个字符串是(![]+[])[+ ! ![]]

我们只对每个被列入黑名单的单词的几个字母使用了混淆,所以我们没有创建太大的负载,但是我们也能够绕过它。当这种混淆产生一个字符串时,我们需要使用eval来指示解释器将该字符串视为一段可执行代码。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白帽学习之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档