Web应用安全测试-业务功能滥用(二)

news2025/6/25 22:33:02

Web应用安全测试-业务功能滥用(二)

7、未验证的URL跳转

漏洞描述:服务端未对传入的跳转url变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。由于是从可信的站点跳转出去的,用户会比较信任,所以跳转漏洞一般用于钓鱼攻击,通过转到恶意网站欺骗用户输入用户名和密码盗取用户信息,或欺骗用户进行金钱交易;也可能引发的XSS漏洞(主要是跳转常常使用302跳转,即设置HTTP响应头,Locatioin: url,如果url包含了CRLF,则可能隔断了http响应头,使得后面部分落到了http body,从而导致xss漏洞)。另外在struts2 中存在重定向的漏洞,是因为struts2由于缩写的导航和重定向前缀“action:”、 “redirect:”、 “redirectAction:” 等参数前缀的内容没有被正确过滤导致的开放式重定向漏洞。

测试方法:

  1. 首先找到网站相关url中存在跳转链接的参数(如登录页面)。
  2. 在检测的同时,可以修改参数中的合法URL为非法URL,然后查看是否能正常跳转或者通过抓包工具获取其HTTP响应头中Host:的值是否包含了构造的URL。
  3. 如果是struts2重定向漏洞,则可通过web扫描工具扫描发现,或者手工验证,直接在URL后添加?redirect:+指定钓鱼链接,例如:10.1.82.53:9098/admin/login.action?redirect:http://diaoyu.com进行验证。

风险分析:攻击者利用URL跳转漏洞来欺骗安全意识低的用户,从而导致“中奖”之类的欺诈事件发生。同时利用URL跳转,也可以突破常见的基于“白名单方式”的一些安全限制,如传统IM里对于URL的传输会进行安全校验,但是对于知名网站的域名及URL将直接允许通过并且显示为可信的URL,一旦该可信的URL里包含URL跳转漏洞将导致安全限制被绕过。URL跳转最典型的例子就是登录跳转,示例代码如下:

public void doRedirect(HttpServletRequest req, HttpServletResponse res)

{

   String jumpURL=request.getParameter(“jumptoURL”);

       response.setHeader("Location",jumpURL);

}

若程序未过滤jumptoURL参数,攻击者将恶意链接:http://www.xxx.com/login.jsp?jumptoURL=http://www.evil.com发给其他用户,安全意识较低的用户会认为该链接展现的内容是www.xxx.com,从而产生欺诈行为。同时由于QQ、淘宝旺旺等在线IM都是基于URL的过滤,对部分站点会通过白名单的方式直接通过,因此恶意URL可以在IM里传播。例如IM认为www.xxx.com是可信的,但是通过在IM里点击上述链接将导致用户最终访问http://www.evil.com。

风险等级:

高危:URL 跳转参数可控,且未对参数做白名单限制导致任意地址跳转可被利用钓鱼。

修复方案:对传入的URL做有效性的认证,保证该URL来自于信任域。限制的方式可参考以下两种:

  1. 限制Referer(Referer是HTTP header中的字段,当浏览器向web服务器发送请求时,一般会带上Referer,告诉服务器是从哪个页面链接过来的),通过限制Referer保证将要跳转URL的有效性,避免攻击者生成自己的恶意跳转链接;
  2. 加入有效性验证Token,保证所有生成的链接都来自于可信域,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验。

注意事项:暂无

8、服务器端请求伪造(SSRF)

漏洞描述:服务端请求伪造攻击(Server-side Request Forgery): 很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器。这种形式的攻击称为服务端请求伪造攻击(Server-side Request Forgery)。一般情况下, SSRF攻击的目标是从外网无法访问的内部系统 。( 正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统 ).SSRF 形成的原因大都是由于 服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制 。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。攻击者利用ssrf可以实现的攻击主要有5种:

  1. 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
  2. 攻击运行在内网或本地的应用程序(比如溢出);
  3. 对内网web应用进行指纹识别,通过访问默认文件实现;
  4. 攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
  5. 利用file协议读取本地文件等。

测试方法:从WEB功能上寻找:我们从上面的概述可以看出,SSRF是由于服务端获取其他服务器的相关信息的功能中形成的,因此我们大可以列举几种在web 应用中常见的从服务端获取其他服务器信息的的功能。

  1. 通过分享功能:通过URL地址分享网页内容:

早期分享应用中,为了更好的提供用户体验,WEB应用在分享功能中,通常会获取目标URL地址网页内容中的<tilte></title>标签或者<meta name="description" content=“”/>标签中content的文本内容作为显示以提供更好的用户体验。例如人人网分享功能中:http://widget.renren.com/*****?resourceUrl=https://www.nsfocus.com

通过目标URL地址获取了title标签和相关文本内容。而如果在此功能中没有对目标地址的范围做过滤与限制则就存在着SSRF漏洞。

    2、转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览:由于手机屏幕大小的关系,直接浏览网页内容的时候会造成许多不便,因此有些公司提供了转码功能,把网页内容通过相关手段转为适合手机屏幕浏览的样式。例如百度、腾讯、搜狗等公司都有提供在线转码服务。

    3、在线翻译:通过URL地址翻译对应文本的内容。提供此功能的国内公司有百度、有道等。

    4、图片加载与下载,通过URL地址加载或下载图片:图片加载远程图片地址此功能用到的地方很多,但大多都是比较隐秘,比如在有些公司中的加载自家图片服务器上的图片用于展示。(此处可能会有人有疑问,为什么加载图片服务器上的图片也会有问题,直接使用img标签不就好了? ,没错是这样,但是开发者为了有更好的用户体验通常对图片做些微小调整例如加水印、压缩等,所以就可能造成SSRF问题)。

    5、图片、文章收藏功能:此处的图片、文章收藏中的文章收藏就类似于功能一、分享功能中获取URL地址中title以及文本的内容作为显示,目的还是为了更好的用户体验,而图片收藏就类似于功能四、图片加载。

    6、未公开的api实现以及其他调用URL的功能:此处类似的功能有360提供的网站评分,以及有些网站通过api获取远程地址xml文件来加载内容.

风险分析:如果应用程序对用户提供的URL和远端服务器返回的信息没有进行合适的验证和过滤,则可能存在服务器端请求伪造攻击。服务器端请求伪造攻击场景如下图所示:

攻击者想要访问主机B上的服务,由于存在防火墙的原因无法直接访问,这时可以借助主机A来发起服务器端请求伪造攻击,通过主机A向主机B发起请求,从而完成攻击。SSRF攻击方式主要有以下5种:

  1. 对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息(一般包括服务器的类型、版本,服务器上启动的服务信息);
  2. 攻击运行在内网或本地的应用程序(比如堆栈溢出);
  3. 通过访问默认文件实现对内网Web应用的指纹识别;
  4. 攻击内外网的Web应用,主要是使用GET参数就可以实现的攻击(比如Struts2,Sqli等);
  5. 利用file协议读取本地文件等。

风险等级:

高危:有回显,可探测内网,文件访问

       中危:无回显,但可访问外网

修复方案:通常从以下几点来防御服务器端请求伪造攻击:

  1. 过滤内网服务器对公网服务器请求的响应。如果Web应用是获取某一类型的文件,在把返回结果展示给用户之前应先验证返回的信息是否符合文件类型标准,比如返回信息应为图片,如果返回信息是HTML,则停止将返回信息返回客户端。
  2. 统一错误提示信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
  3. 在内网服务器的防火墙上限制公网服务器的请求端口为HTTP等协议常用端口,如:80、443、8080、8090。
  4. 若公网服务器的内网IP与内网无业务通信,建议将公网服务器对应的内网IP列入黑名单,避免应用被用来获取内网数据。
  5. 内网服务器禁用不必要的协议,仅允许HTTP和HTTPS请求,防止类似于file:///、gopher://、ftp:// 等协议引起的安全问题。

注意事项:暂无

9、短信内容可控

漏洞描述:短信内容可从客户端指定

测试方法:在客户端编辑任意短信内容,测试是否过滤特殊内容。

风险分析:攻击者可利用该漏洞,借助短信平台,编辑钓鱼短信发送给其他用户。

风险等级:

高危:短信内容可控,且接收人可任意指定

中危:短信内容可控,但接受人不可控

修复方案:建议在不影响业务的前提下,禁止客户端编辑短信内容。

注意事项:暂无

10、邮件内容可控

漏洞描述:应用系统发送邮件的邮件内容可由客户端任意指定

测试方法:在客户端编辑任意邮件内容,测试是否过滤特殊内容。

风险分析:攻击者可利用该漏洞,借助邮件平台,编辑钓鱼邮件发送给其他用户。

风险等级:

高危:邮件内容可控,且收件人可任意指定

中危:邮件内容可控,但收件人地址不可控

修复方案:建议在不影响业务的前提下,禁止客户端编辑邮件内容。

注意事项:暂无

11、请求重放攻击

漏洞描述:关键业务操作未作token或者唯一标识码,导致攻击者可以重复多次进行请求,导致恶意操作。如重复交易等问题。

测试方法:重放http/tcp请求,查看第二次请求是否被正常处理。

风险分析:攻击者恶意或欺诈性地重复发送一个有效的数据包,如果服务器未检查此类重复提交的请求数据的有效性,那么转账充值等敏感操作将有可能会被重复执行。

风险等级:

高危:关键业务操作请求未设置 token 或标识码,导致业务数据越界或错误

修复方案:服务端应用程序应检查客户端提交的数据的唯一性,如使用流水号、时间戳、token等,并将流水号、时间戳等进行签名。

注意事项:暂无

12、批量提交

漏洞描述:应用程序未使用验证码等防自动化操作的方法,可批量提交请求,如批量注册。

测试方法:

  1. 编写自动提交HTTP数据包的脚本;
  2. 或使用burpsuite的intruder功能批量提交请求。

风险分析:注册不需要验证码时,攻击者通过编写自动化脚本,实现程序自动提交注册信息;若注册需要验证码,但验证码位数不多于4位且为纯数字时,通过使用软件burpsuite的intruder功能穷举得到正确的验证码后,再结合自动化脚本工具即可实现批量注册垃圾账号。

风险等级:

高危:正常业务为单条数据请求,且不存在防自动化批量操作措施,可批量自动化提交。

低危:正常业务为单条数据请求,且存在防自动化批量操作措施,但在单个数据包中写入批量数据,可成功提交,并且服务器能批量执行。

修复方案:

  1. 使用安全性强的验证码,验证码应从以下方面保证其安全性:验证码长度不低于4位,避免使用容易被程序自动识别的验证码,验证码不应返回客户端。
  2. 用户注册功能处,提交注册信息后进行邮箱或短信验证通过后再将注册信息写入数据库。
  3. 对同一IP地址短时间内提交请求的次数进行限制。

注意事项:暂无

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1822886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无线MODBUS通讯模块在供水系统中的应用

一、项目背景 我国是人口大国、农业大国&#xff0c;同时也是贫水大国。由于大量工业废水污染了部分河流、地表的浅层水资源&#xff0c;并且有逐年加重的趋势&#xff0c;再加上农业、绿化等灌溉对水资源的大量消耗&#xff0c;这些因素综合作用进一步加剧了我国水资源紧缺的…

计算机网络:网络层 - IPv6

计算机网络&#xff1a;网络层 - IPv6 IPv6 数据报IPv6 地址冒号十六进制记法地址分类 IPv4 到 IPv6 过渡双栈协议隧道技术 IPv6 是互联网协议的最新版本&#xff0c;它被设计用来取代现有的 IPv4 协议。这是因为 IPv4 存在一些根本性的限制&#xff0c;而 IPv6 则可以解决这些…

Burp Suite使用及BruteForc_test靶场实战

简介 Burp Suite是用于攻击和测试Web应用程序安全性的集成平台&#xff0c;包含多个协同工作的工具&#xff0c;支持信息共享与复杂攻击。设计有加速攻击流程的接口&#xff0c;所有工具共享强大框架&#xff0c;处理HTTP消息、持久性、认证、代理、日志和警报。主要用于安全性…

【数据结构】【版本1.1】【线性时代】——单链表

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、顺序表的问题二、链表的概念三、单链表的模拟实现3.1 定义3.2 打印3.3 创建新节点3.4 头插3.5 尾插3…

2-3 基于matlab的NSCT-PCNN融合和创新算法(NSCT-ML-PCNN )图像融合

基于matlab的NSCT-PCNN融合和创新算法&#xff08;NSCT-ML-PCNN &#xff09;图像融合。NSSCTest.m文件&#xff1a;用于查看利用NSSC算法分解出的图像并保存。其中的nlevel可调test.m文件&#xff1a;用于产生融合结果&#xff0c;其中一个参数需要设置&#xff1a;Low_Coeffs…

DTU在城市智慧供热上的应用:引领供热行业的智能化革新

随着城市化的快速推进和人们对舒适生活需求的日益增长&#xff0c;供热系统作为城市基础设施的重要组成部分&#xff0c;其智能化、高效化的发展已成为必然趋势。在这一进程中&#xff0c;DTU&#xff08;Data Transfer Unit&#xff0c;数据传输单元&#xff09;以其独特的优势…

Java 反射机制 -- Java 语言反射的概述、核心类与高级应用

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 010 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

113.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-结构体数据更新思路分析

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

12_YouOnlyLookOnce(YOLOv3)新一代实时目标检测技术

1.1 回顾V1和V2 V1&#xff1a;05_YouOnlyLookOnce(YOLOV1)目标检测领域的革命性突破-CSDN博客 V2&#xff1a;07_YouOnlyLookOnce(YOLOv2)Better&#xff0c;Faster&#xff0c;Stronger-CSDN博客 1.2 简介 YOLOv3&#xff08;You Only Look Once version 3&#xff09;是…

【因果推断python】33_合成控制3

目录 不要外推 不要外推 假设您有下表中的数据&#xff0c;并被要求构建一个合成控制&#xff0c;以使用控制单元的任何线性组合来重现处理过的单元。 由于有 3 个单位和只有 2 个属性要匹配&#xff0c;因此有多个确定性的解决方案可以解决这个问题&#xff0c;但一个不错的解…

[vue2]深入理解路由

本节目标 单页应用程序路由概念VueRouter基本使用组件分类存放路由模块封装声明式导航其他路由配置路由模式编程式导航案例-面经基础版 单页应用程序 单页应用程序(SPA): 所有的功能都在一个HTML页面上实现 网易云音乐: 网易云音乐 多页应用程序(MPA): 不同功能通过切换不同…

数字芯片设计指南之几个微流片设计(已开源)

1 位 ALU 作者 利奥慕时 描述 书中的 1 位 ALU Structured Computer Organization: Andrew S. Tanenbaum 链接 Wokwi 链接 & GitHub 链接 图片 桶形移位器 作者 约翰内斯霍夫&#xff08;Johannes Hoff&#xff09; 描述 将 6 位数字向左移动 0-3 位 链接 …

【CGAL】圆柱体检测结果后处理

文章目录 文章说明算法思路代码展示结果展示 文章说明 这篇文章主要介绍&#xff0c;对使用CGAL中的 Region Growing 算法爬取圆柱体的结果进行后处理&#xff0c;以获取位置、轴向量、半径都较为合理的单个圆柱体。 在之前的一篇文章中&#xff0c;使用了open3D生成的标准圆…

2024 年勒索软件将比以往更加残酷

如今&#xff0c;世界各地的人们去学校、去医院或去药店时&#xff0c;都会被告知&#xff1a;“抱歉&#xff0c;我们的计算机系统瘫痪了。” 罪魁祸首往往是在世界另一端活动的网络犯罪团伙&#xff0c;他们会要求人们支付系统访问费用或安全归还被盗数据。 尽管警方加大打…

搜维尔科技:【应用】人形机器人将成为引领产业新浪潮的尖兵

特斯拉纷纷发表人形机器人计划&#xff0c;预示这项先进科技将成为下一个颠覆性的殖民地。人形机器人被视为继电脑、智能手机和电车之后,又一个将改变世界的创新产品。 全球人口结构正在快速老化&#xff0c;至2050年60岁以上人口将达22%,是现今的两倍。劳动人口短缺迫在眉睫&…

Koolshare 软件中无法显示 Aliddns 更新泛域名失败

华硕 AC86U 升级之后&#xff0c;软件中心无法显示&#xff0c;没有找到更好的办法&#xff0c;只能重新格式化&#xff0c;带来的问题就是升级之前安装的软件全部被清掉了。感觉升级之后&#xff0c;可能兼容性出了问题。 Aliddns 更新失败 Aliddns 是一款可以在路由器上动态…

仰望U8三大黑科技,重新定义智能汽车

文 | 智能相对论 作者 | 雷歌 是时候重新定义中国的“智能汽车”了。 在仰望U8出来以前&#xff0c;普通人对知道的智能汽车的配置认识&#xff0c;智能汽车是智能驾驶智能座舱&#xff0c;硬件上大概是这几样&#xff1a;毫米波雷达激光雷达智驾芯片。 仰望U8出来以后&…

力扣每日一题 6/14 动态规划+数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2786.访问数组中的位置使分数最大【中等】 题目&#xff1a; 给你一个下标…

【docker】Linux安装最新版Docker完整教程

这里写目录标题 一、安装前准备工作1.1、安装依赖包1.2、设置阿里云镜像源 二、安装Docker2.1、docker-ce安装2.2、启动docker2.3、启动docker并设置开机自启 三、 优化docker配置3.1、访问阿里云官方镜像加速器地址3.2、设置阿里云加速地址 一、安装前准备工作 1.1、安装依赖…

AI应用工具箱|AIGC聚集地

1、AI应用工具箱|AIGC聚集地 https://www.yuque.com/popponyj/aigc_aitools