#渗透测试#SRC漏洞挖掘#XSS跨站脚本介绍01

发布于:2024-11-04 ⋅ 阅读:(115) ⋅ 点赞:(0)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。

目录

xss介绍

一、基本情况

涉及主体

攻击目标

漏洞成因

二、XSS的类型

按持久性分类

非持久型xss攻击

持久型xss攻击

按生效方式分类

构造URL

发布内容式

蠕虫式

 如何检测网站是否存在XSS漏洞?

手动检测方法

查看代码

准备测试脚本

自动化工具

使用自动化工具

安全漏洞扫描工具

安全代码审计

 自动化XSS检测工具推荐

XDT

XSSer

XSSValidator

XSSFork


 

xss介绍

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的

XSS是一种网站应用程序的安全漏洞攻击,是代码注入的一种。
它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。
这类攻击通常包含了HTML以及用户端脚本语言。 
XSS攻击通常指的是通过利用网页开发时留下的漏洞,
通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

XSS跨站漏洞分为大致三种:储存型XSS,反射型XSS,和DOM型XSS,一般都是由于网站对用户输入的参数过滤不严格而调用浏览器的JS而产生的。

一、基本情况

  1. 涉及主体
    • 涉及三方,即攻击者、客户端与网站。

  2. 攻击目标
    • 为了盗取客户端的cookie或者其他网站用于识别客户端身份的敏感信息,获取合法用户信息后,攻击者甚至可以假冒最终用户与网站进行交互。

  3. 漏洞成因
    • 动态网页的Web应用对用户提交请求参数未做充分的检查过滤,允许用户在提交的数据中掺入代码,然后未加编码地输出到第三方用户的浏览器,这些攻击者恶意提交的代码会被受害用户的浏览器解释执行。

二、XSS的类型

  1. 按持久性分类
    • 非持久型xss攻击
      • 是一次性的,仅对当次的页面访问产生影响。要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户浏览器执行,从而达到攻击目的。

    • 持久型xss攻击
      • 会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。

      • 可细分为:

        • 反射型:经过后端,不经过数据库。例如,新建一个xss.php 文件,当PHP读取参数(如无过滤),若输入js代码(如scriptalert('hack')/script)并点击相关按钮,输入的HTML代码会被执行,其数据流向是浏览器 - 后端 - 浏览器。

        • 存储型:经过后端,经过数据库。例如在个人信息或发表文章等地方插入代码,如果没有过滤或过滤不严,代码将储存到服务器中,用户访问该页面的时候触发代码执行,这种类型比较危险,容易造成蠕虫、盗窃cookie等情况。

        • DOM型:不经过后端,DOM - XSS漏洞是基于文档对象模型(DocumentObjeetModel,DOM)的一种漏洞,DOM - XSS是通过url传入参数去控制触发的。

  2. 按生效方式分类
    • 构造URL
      • 攻击者通过构造URL的方式构造一个有问题的页面;当其他人点击此页面后,会发现页面出错,或者被暗中执行了某些js脚本,这时攻击行为才真正生效。例如在百度搜索中,如果对输入的特殊参数(如未转义处理的包含脚本的参数)没有处理,就可能执行嵌入的脚本。

    • 发布内容式
      • 在可以发表内容的论坛、讨论区、吧、博客、微博等网站上,用户发表的内容会保存起来并被其他用户浏览。如果保存的内容显示时没有经过正确处理,包含攻击者精心构造内容(如包含恶意脚本的留言),访问该内容的用户就会中招。

    • 蠕虫式
      • 首先发一个有问题的文章,浏览者阅读时会被暗中执行恶意代码,发表一篇新的文章也含有同样的恶意代码。例如在微博上,蠕虫式攻击可能使微博用户主动点击攻击链接后,立刻执行一段有害代码,造成发布一条微博、成为攻击发起人的粉丝、向其他好友发送含同样链接地址的私信等结果。

 如何检测网站是否存在XSS漏洞?

手动检测方法
查看代码

一种方法是查看网站的源代码,寻找可能存在漏洞的地方。例如,在ASP程序中,通过Request对象获取客户端的变量,如果没有经过htmlEncode处理,那么这个变量就可能存在XSS漏洞。

准备测试脚本

可以准备一些常见的XSS测试脚本,如<script>alert('XSS')</script>,并在网页中的文本框或其他可输入数据的地方尝试输入这些脚本。如果这些脚本能够在页面上执行,那么就表明存在XSS漏洞。

自动化工具
使用自动化工具

随着互联网安全技术的不断进步,出现了许多自动化工具,可以帮助安全人员发现网站的XSS漏洞。这些工具能够模拟攻击者的行为,发送各种恶意输入,然后观察网站的响应,从而找出网站的XSS漏洞。这种方式可以大大节省安全审计的时间,同时也能够发现更多潜在的漏洞。

安全漏洞扫描工具

安全漏洞扫描工具可以帮助发现网站的安全漏洞,包括XSS漏洞。通过扫描工具,可以对网站进行全面的安全扫描,检查网站的输入输出情况,发现潜在的XSS漏洞,从而提前修复这些漏洞,防范XSS攻击。

安全代码审计

在网站的开发过程中,可以借助安全代码审计来发现XSS安全漏洞。安全代码审计是一种深入分析网站代码,发现潜在安全威胁的方法。通过代码审计,可以找出网站中潜在的输入输出问题,发现潜在的XSS漏洞,从而及时修复这些漏洞,提高网站的安全性。

 自动化XSS检测工具推荐

XDT

XDT 是一款基于Python的XSS自动化检测工具。它利用网络爬虫模块获取注入点,通过漏洞检测模块提交恶意负载并分析响应,结果分析模块则生成测试报告。XDT支持反射型和存储型XSS检测,并提供测试案例及DVWA平台的演示。源代码可在GitHub上找到。

XSSer

XSSer 是一个自动的框架,用于检测、利用和报告基于web的应用程序中的XSS漏洞。它支持多种类型的XSS攻击,并且可以自定义攻击载荷。此外,XSSer还支持多线程和分布式扫描,可以提高扫描效率。

XSSValidator

XSSValidator 是一个Burp Suite插件,用于自动化XSS漏洞的检测。它结合了PhantomJS和xss.js 脚本来模拟浏览器行为,检测网站是否存在XSS漏洞。使用XSSValidator,用户可以在Burp Suite中拦截请求,并将页面发送到Intruder进行XSS扫描。

XSSFork

XSSFork 是一款新一代的XSS漏洞探测工具,使用WebKit内核的浏览器PhantomJS来模拟浏览器行为。它分为两个部分,xssfork和xssforkapi,其中xssfork在对网站进行模糊测试时会调用大量的payload。这使得XSSFork能够高效地检测出复杂的XSS漏洞。

总结

以上工具各有特点,选择合适的工具取决于具体的需求和环境。在使用这些工具时,请确保遵守相关法律法规和道德规范,仅在获得授权的情况下对目标网站进行安全测试。


网站公告

今日签到

点亮在社区的每一天
去签到