前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 5.2 - 识别跨站脚本漏洞

Kali Linux Web渗透测试手册(第二版) - 5.2 - 识别跨站脚本漏洞

作者头像
Power7089
发布2019-07-25 10:20:12
4950
发布2019-07-25 10:20:12
举报

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,

这个公众号,一定要关注哦,慢慢会跟上面老哥们一起分享很多干货哦~~

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

第五章、使用跨站脚本攻击客户端

5.0、介绍

5.1、使用浏览器绕过客户端控制

5.2、识别跨站脚本漏洞

5.3、利用XSS获取Cookie

5.4、利用DOM XSS

5.5、利用BeEF执行xss攻击

5.6、从Web存储中提取信息

5.7、使用ZAP测试WebSokets

5.8、使用XSS和Metasploit获取远程shell


4.2、识别跨站脚本漏洞

跨站脚本漏洞(XSS)是web应用程序中最常见的漏洞之一;它在2013年的OWASP Top 10中排名第三(https://www.owasp.org/index.php/Top_10_2013-Top_10)

在这个小节中,我们将看到发现web应用程序中XSS漏洞的关键点。

实战演练

让我们看看以下步骤:

1. 我们将使用易受攻击的Web应用程序(DVWA)来完成这个小节。使用默认的管理凭据(admin作为用户名和密码)登录,然后到XSS reflected(反射XSS)。

2. 测试漏洞的第一步是观察应用程序的正常响应。在文本框中填写一个名称字符串并且点击提交。在这里我们填写的是Bob:

3. 应用程序使用的是我们输入的字符串。如果我们引入一些特殊字符或者数字而不是一个有效的名称字符串,会发生什么呢?让我们试试<’this is the first test’>:

4. 现在,我们看到我们在文本框输入的任何内容都将出现在响应中;也就是说,它成为了响应HTML页面的一部分。让我们检查页面的源代码来分析它是如何显示信息的:

源代码显示,在输出中没有对特殊字符进行编码,我们发送的特殊字符在没有任何预先处理的情况下反射回页面。<和>是用来定义HTML标签的,所以我们可以引入一些脚本代码。

5. 试着在普通输入的后面加上非常简单的脚本代码,Bob<script>alert(‘xss’)</script>:

该页面执行了脚本,导致弹出了警告框,因此该页面容易收到XSS攻击。

6. 现在,检查源代码,看看发生了什么:

看起来我们的输入被处理得好像它是HTML代码的一部分;浏览器解释了<script>标签,并在其中执行代码,显示出了警告。

原理剖析

XSS漏洞发生在服务器端和客户端对输入执行弱验证或不进行验证,且输出没有正确编码的情况下。这意味着该应用程序允许我们引入HTML代码中使用的字符,并且在将它们发送到页面时,不进行任何编码(例如使用HTML转义<和>,以防止它们被解释为HTML或Javascript源代码)。

攻击者使用这些漏洞来更改客户端的行为,欺骗用户在他们不知情的情况下执行任务,或者窃取私人信息。

为了发现XSS漏洞的存在,我们可以关注以下几个方面:

  • 我们在框中输入的文本被精确的用于响应页面;也就是说,它是一个反射点。
  • 特殊字符没有编码或者转义。
  • 源代码显示,我们的输入被集成到了一个位置,它可以成为HTML代码的一部分,并被浏览器解释为HTML代码。

其他…

在这个小节中,我们发现了一个反射XSS;这意味着每当我们发送这个请求,服务器响应它时,脚本就会被执行。另一种类型的XSS称为存储型XSS。存储型的XSS可能是在输入提交后立即显示的,也可能不是,但是这种输入存储在服务器上(可能存储在数据库中),在用户每次访问时都会执行。

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

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

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

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

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