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

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

1、短信定向转发

漏洞描述:短信接收人可任意指定

测试方法:拦截发送短信的请求,将手机号改为测试人员的手机号,测试是否可接收短信验证码。

风险分析:攻击者可利用该漏洞将验证码发送到自己的手机号上,重置他人密码或转账。

风险等级:

高危:短信接收人可任意指定

修复方案:发送短信时手机号从当前会话中获取,避免从前端传入。

注意事项:暂无

2、邮件可定向转发

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

测试方法:拦截发送邮件的请求,将接收人邮箱改为测试人员的邮箱地址,测试是否可接收邮件。

风险分析:攻击者可利用该漏洞将邮件发送到自己的邮箱中,重置他人密码。

风险等级:

高危:邮件接收人可任意指定

修复方案:发送邮件时邮箱从当前会话中获取,避免从前端传入。

注意事项:暂无

3、业务接口调用缺陷

漏洞描述:应用的业务接口存在缺陷,可以通过业务接口直接进行恶意操作。

测试方法:把业务逻辑和功能模块呈现的内容结合,推测出隐藏的API接口。

如用户信息的接口是http://www.xxx.com/api/user/userInfo,推测重置密码接口可能是http://www.xxx.com/api/user/passReset,文件上传接口是http://www.xxx.com/api/user/uploadFile等。如果这些接口没有限制访问,则可以直接调用并提交数据。

针对开源或商业软件的业务接口调用缺陷可参考《通用系统安全测试指导文档》

风险分析:攻击者可通过编写API枚举脚本,恶意调用敏感接口,从而进行提交数据等操作。

风险等级:

高危:通过业务接口能够操作核心业务内容,进行越权

高危:通过业务接口能够获得重要敏感数据

中危:通过业务接口能够获得中等程度敏感数据

修复方案:对于每一个访问的接口都首先检查当前用户是否已经登录并授权(不需要认证的接口除外,例如,免费下载接口等)。

注意事项:暂无

4、IMAP/SMTP注入

漏洞描述:和广为人知的诸如SQL注入、XPath注入等技术类似,邮件服务器注入技术也是通过一个对用户提供的数据没有严格检查的webmail应用程序将IMAP命令或者SMTP命令注入到邮件服务器。要向邮件服务器注入命令,前提条件是允许用户通过webmail应用程序访问其端口25(SMTP)和143(IMAP)。

测试方法:要利用SMTP注射,用户必须事先通过认证,所以用户必须有一个有效的webmail帐户。通过SMTP发送电子邮件消息的格式如下:

  • 发送方的e-mail地址 
  • 接收方的e-mail地址 
  • 主题 
  • 消息主体 
  • 附件
  1. CC/BCC注入
    在发送者字段(sender)后注入CC和BCC参数
    From:sender@domain.com%0ACc:recipient@domain.com%0ABcc:recipient1@domain.com
    所以现在,消息将被发送到recipient和recipient1账户。
  2. 参数注射
    From:sender@domain.com%0ATo:attacker@domain.com
    现在消息将被发送到原来的收件人和攻击者帐户。注意,这里的攻击者的账户是我们通过注入额外传入的。
  3. 邮件主题注入
    From:sender@domain.com%0ASubject:This’s%20Fake%20Subject
    攻击者注入的假的主题subject将被添加到原来的主题中并且在某些情况下将取代原本的主题subject。这取决于邮件服务行为。即代码编写的容错性,当参数中出现两个subject的时候代码是选择丢弃还是后者覆盖。
  4. 改变消息的主体body
    要注意SMTP的Mail格式,消息主题和头部Header之间有两个换行符(和HTTP是一样的)。
    From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
    假消息将被添加到原始消息中。

风险分析:电子邮件注入允许恶意攻击者注入任意邮件头字段,BCC、CC、主题等,它允许黑客通过注入手段从受害者的邮件服务器发送垃圾邮件。

风险等级:

高危:可成功劫持密码找回等信息

高危:可成功发送垃圾邮件

修复方案:建议从以下几个方面进行防御:

  1. 所有用户输入应该被认为是不可信的。使用正则表达式来过滤用用户提交的数据。例如,可以在输入字符串中搜索(r 或 n)。
  2. 使用外部组件和库,例如ZEND mail、PEAR mail和swift mailer。
  3. ModSecurity可以阻止服务器级别的电子邮件注入。利用ModSecurity,可以检测通过POST或GET提交的CC, BCC或目的地址,并且拒绝任何包含这些字母请求。

注意事项:暂无

5、引用第三方不可控脚本/URL

漏洞描述:页面中引用了不可控的脚本或超链接

测试方法:检查页面内容,是否引用了第三方未知脚本或超链接,如恶意的js脚本或病毒木马的下载链接等。

风险分析:攻击者可在网站中插入恶意链接或脚本,导致正常用户浏览时cookie被窃取或被种植病毒木马。

风险等级:

高危:存在不可控外链或脚本,且未经过审批

中危:存在不可控外链或脚本,但可提供审批记录

修复方案:建议在不影响业务的前提下,对网站引用的文件和源代码进行审查,一经发现有未审批的外链或脚本,应立即删除。

注意事项:暂无

6、开启危险接口

漏洞描述:开启可利用的危险接口,如获取订单信息、用户身份信息等。

测试方法:

  1. 使用扫描器扫描特殊目录和链接
  2. 根据正常接口的命名特征猜测隐藏的危险接口,如获取个人信息接口是getUserInfo,猜测获取订单信息接口getOrderDetail。

风险分析:开启了危险接口,如订单信息打印、上传、web管理控制台等,可能被攻击者发现并利用,直接操作应用数据,造成数据泄漏等风险。

风险等级:

高危:正常情况接口是在认证之后被调用,如果可公网直接无认证使用

中危:存在特权、非正常用户不可知但可利用接口

修复方案:

  1. 敏感接口增加访问控制,避免未授权访问;
  2. 用户访问接口需校验权限,避免越权访问。

注意事项:暂无

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

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

相关文章

node更改npm缓存存储位置-并配置环境变量

更改缓存位置 node安装完成之后,在安装目录中新建一个存放缓存的文件夹node_cache 此时这个文件夹必须使用管理员权限才能更改,这使得命令行下使用npm进行下载的时候总是报权限不足的错误:permit 解决办法: 右键 -> 属性 -> 安全 -> 编辑 -> 选择user -> …

mybatis中resultMap和resultType的区别

总结 基本映射 :(resultType)使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。(数据库,实体,查询字段,这些全部都得一一对应)…

盲盒App开发时有哪些技术框架可以借鉴

在开发盲盒App时,技术框架的选择对于应用的性能、稳定性和用户体验都至关重要。以下是几个可以借鉴的技术框架,它们在不同方面提供了优势,并且结合了参考文章中的相关信息: 前端技术框架 微信小程序框架: 优点&#…

Arrays与Lambda

Arrays 默认排序: 按照指定规则排序: 细节: 底层原理: 代码实现:o1-o2:升序排列 o2-o1:降序排列 Lambda表达式:简化匿名内部类方法 函数式编程: 格式: 总结: …

关于2024年第一批计算机程序设计员(Python)四级、三级职业技能等级证书认证考试的通知

计算机程序设计员(Python)详细介绍 报名详细信息: 报名截止时间:2024年6月05日 ~ 2024年6月18日 准考证下载时间:2023年6月24日 ~ 6月28日 考试时间:2024年6月29日 四级:08:30~12:30&#…

UDP的组播发送与接收C语言测试和nc接收组播测试

组播这个东西&#xff0c;很多年前用过一次。本身的原理不复杂&#xff0c;未知的是使用的环境&#xff0c;受使用环境的影响有多大&#xff0c;还是那句废话&#xff0c;具体问题具体分析。 发送端代码multicast.c #include <stdio.h> #include <stdlib.h> #…

k8s 自动伸缩机制-------HPA 超详细解读

目录 在K8s中扩缩容分为两种&#xff1a; 前言 弹性伸缩是根据用户的业务需求和策略&#xff0c;自动“调整”其“弹性资源”的管理服务。通过弹性伸缩功能&#xff0c;用户可设置对定时、周期或监控策略&#xff0c;恰到好处地增加或减少“弹性资源”&#xff0c;并完成实例…

最小生成树prim算法详解

prim算法解决的是最小生成树问题&#xff0c;即在一个给定的无向图G中求一棵生成树T&#xff0c;使得这棵树拥有图G中的所有顶点&#xff0c;且所有边都是来自图G中的边&#xff0c;并且满足整棵树的边权之和最小。 prim算法的基本思想是对图G设置集合S来存放已被访问的顶点&a…

适用于 macOS 的最佳免费数据恢复软件

升级到 macOS 后&#xff0c;它可以帮助您从 HDD、SSD、存储卡、USB 闪存驱动器、数码相机或其他存储介质设备中完全恢复已删除、格式化或无法访问的数据。 当 macOS Monterey 用户寻找数据恢复解决方案时&#xff0c;免费数据恢复软件始终是一个不错的选择。实际上&#xff0…

【Qt】chartView设置橡皮筋效果(RubberBand)

1. 效果 2. 代码 QChartView* chartView new QChartView();chartView->setRubberBand(QChartView::RectangleRubberBand);

C# 数据结构与算法:近邻算法的详解

文章目录 1、什么是K最近邻算法&#xff08;KNN&#xff09;&#xff1f;2、 KNN算法的原理3、实现近邻算法算法使用示例 4、应用&#xff1a;使用KNN算法进行简单的分类5、算法的优势与不足6、总结 近邻算法是一种基于实例的学习方法&#xff0c;它通过找到与给定测试点最接近…

社区团购系统搭建部署 :便捷高效,连接消费者与商家新篇章

一、前言 随着科技的快速发展和互联网的普及&#xff0c;社区团购系统作为一种新型的购物模式&#xff0c;正以其便捷高效的特性&#xff0c;逐渐改变着消费者和商家的互动方式。社区团购系统为商家提供丰富的营销活动和便捷高效的门店管理体系&#xff0c;为消费者提供真正实惠…

以bert为例,了解Lora是如何添加到模型中的

以bert为例,了解Lora是如何添加到模型中的 一.效果图1.torch.fx可视化A.添加前B.添加后 2.onnx可视化A.添加前B.添加后 3.tensorboard可视化A.添加前B.添加后 二.复现步骤1.生成配置文件(num_hidden_layers1)2.运行测试脚本 本文以bert为例,对比了添加Lora模块前后的网络结构图…

冰与火时空门特效解析

本文在线示例查看。更多精彩内容尽在数字孪生平台&#xff0c;关注公众号&#xff1a;sky的数孪技术&#xff0c;技术交流、源码下载请添加VX&#xff1a;digital_twin123 基本信息 三维渲染库采用threejs&#xff0c;项目用vite打包。 版本&#xff1a;v1.1.0 场景解析 时空…

Python第二语言(十四、高阶基础)

目录 1. 闭包 1.1 使用闭包注意事项 1.2 小结 2. 装饰器&#xff1a;实际上也是一种闭包&#xff1b; 2.1 装饰器的写法&#xff08;闭包写法&#xff09; &#xff1a;基础写法&#xff0c;只是解释装饰器是怎么写的&#xff1b; 2.2 装饰器的语法糖写法&#xff1a;函数…

Flink作业执行之 2.算子 StreamOperator

Flink作业执行之 2.算子 StreamOperator 前文介绍了Transformation创建过程&#xff0c;大多数情况下通过UDF完成DataStream转换中&#xff0c;生成的Transformation实例中&#xff0c;核心逻辑是封装了SimpleOperatorFactory实例。 UDF场景下&#xff0c;DataStream到Transf…

Java——LinkedList

1、链表 1.1 链表的概念及结构 链表在逻辑层面上是连续的&#xff0c;在物理层面上不一定是连续的 链表结构可分为&#xff0c;单向或双向、带头或不带头、循环或非循环&#xff0c;组合共计8种 重点&#xff1a;无头单向非循环链表、无头双向链表 1.2 模拟实现无头单向非…

【代码随想录】【算法训练营】【第35天】[134]加油站 [135]分发糖果 [860]柠檬水找零 [406]根据身高重建队列

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 35&#xff0c;连休两天~ 题目详情 [134] 加油站 题目描述 134 加油站 解题思路 前提&#xff1a;数组 思路&#xff1a;全局贪心算法&#xff1a;最小累加剩余汽油为负数&#xff0c;说明…

面向对象编程重载

系列文章目录 文章目录 系列文章目录前言一、重载&#xff08;overload&#xff09; 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了…