• 【web-攻击用户】(9.1.3)查找并利用XSS漏洞--反射型


    目录

    一、查找并利用XSS漏洞

    1.1、简介:

    二、查找并利用反射型XSS漏洞

    2.1、简介:

    2.2、确认用户输入的反射

    2.3、测试引入脚本的反射

    标签属性值

    JavaScript字符串

    包含URL的特性

    过程:

    2.4、探查防御性过滤


    一、查找并利用XSS漏洞

    1.1、简介:

    确定XSS漏洞的基本方法是使用下面这个概念验证攻击字符串

    ">

    这个字符串被提交给每个应用程序页面中的每一个参数;同时攻击者监控它的响应,看其中是否出现相同的字符串。如果发现攻击字符串按原样出现在响应中,几乎可以肯定应用程序存在XSS漏洞。

    如果仅仅是为了尽可能快地确定应用程序中存在的某种XSS漏洞,以向其他应用程序用户实施攻击,那么这个基本方法可能是最为有效的方法,因为它可以实现高度自动化, 而且很少生成错误警报。但如果是对应用程序进行复杂的测试,从而确定尽可能多的漏洞,那么在应用基本方法的同时,还需要组合使用更加复杂的技巧


    几种情况下, 通过基本的检测方法可能无法确定应用程序中存在的XSS漏洞:

    1、许多应用程序实施基于黑名单的初步过滤, 试图阻止XSS攻击。通常, 这些过滤在请求参数中寻找

    绕过输入过滤,使用触发型事件(如"οnfοcus="alert(1))


    JavaScript字符串

    页面中:

    终止单引号,用分号终止整个语句,直接处理想要执行的JavaScript(如';alert(1); var foo=')

    为阻止JavaScript解释器出现错误,声明一个变量,使单引号后面的代码终止(或者使用//结束)


    包含URL的特性

    页面中:说明

    直接插入到href属性中,属性可能包含一个使用javascript:协议的URL(如javascript:alerrt(1))

    输入将反射到标签属性中,还可以注人一个事件处理器(如"οnclick="javascript:alerrt(1))


    过程:

    对于在前面步骤中记下的每一个潜在的XSS漏洞, 采取:

    1、检查HTML源代码, 确定受控制的字符串的位置

    2、如果字符串出现在几个位置, 应将每个位置当做一个潜在的漏洞, 分别进行分析

    3、根据用户控制的字符串在HTML中的位置, 确定需要如何对其进行修改以使任意JavaScript得以执行(有大量方法可成为传送攻击的有效工具)

    4、向应用程序提交设计的字符串, 测试是否有用。如果设计的字符串仍然按原样返回,表示应用程序存在XSS漏洞。使用一段概念验证脚本显示一个警报对话框, 重复检查语法是否正确, 并确定响应显示时,对话框是否出现在浏览器中

    2.4、探查防御性过滤

    通常情况下最初提交的攻击字符串并不会被服务器按原样返回, 因而无法成功执行注入的JavaScript。接下来应确定服务器对输入进行了哪些处理:

    1、应用程序或Web应用程序防火墙保护的应用程序发现一个攻击签名完全阻止了输入

    2、应用程序已经接受了输入, 但对攻击字符串进行了某种净化或编码

    3、应用程序把攻击字符串截短至某个固定的最大长度


     

  • 相关阅读:
    【步骤详解】Docker一键部署微服务详细教程
    WPF旋转变换
    论文阅读:“基于特征检测与深度特征描述的点云粗对齐算法”
    虚拟局域网
    Greenplum实用工具-gpfdist
    kotlin实现ArrayDeque
    华为配置AP和AC之间NAT穿越示例
    java毕业设计二手交易系统Mybatis+系统+数据库+调试部署
    2310C++用参数包实现类似多态
    编程中的插槽(slot)含义介绍
  • 原文地址:https://blog.csdn.net/qq_53079406/article/details/126499410