2024理解这几个安全漏洞,你也能做安全测试!

如今安全问题显得越来越重要,一个大型的互联网站点,你如果每天查看日志,会发现有很多尝试攻击性的脚本。

如果没有,证明网站影响力还不够大。信息一体化的背后深藏着各类安全隐患,例如由于开发人员的不严谨导致为Web应用程序编写的代码质量堪忧,这很有可能被第三方恶意利用,从而未经授权的访问就能获取敏感数据和Web服务器的控制权。

目前很多所谓的安全测试工程师仅仅停留在使用一些自动化审计工具来检测系统,并对工具检测出来的Bug进行梳理,然后把它提给开发人员。不懂原理,不懂代码,当开发人员也对于安全一窍不通的时候,没办法从自动审计工具上整理下来的Bug。今天就安全测试做一个简单介绍,为将来想从事安全测试或者对网络安全,渗透测试感兴趣的各位做好基础装备技能的普及。

一、短信轰炸

1、漏洞描述

短信轰炸攻击是常见的一种攻击,攻击者通过网站页面中所提供的发送短信验证码的功能处,通过对其发送数据包的获取后,进行重放,如果服务器短信平台未做校验的情况时,系统会一直去发送短信,这样就造成了短信轰炸的漏洞。

2、渗透测试

手工找到有关网站注册页面,认证页面,是否具有短信发送页面,如果有则进行下一步。

通过利用burp或者其它抓包截断工具,抓取发送验证码的数据包,并且进行重放攻击,查看手机是否在短时间内连续收到10条以上短信,如果收到大量短信,则说明存在该漏洞。

3、风险评级

可对任意手机号轰炸判定为高风险。

只可对当前手机号轰炸或单个手机号码做了限制,但变换手机号码仍然可以不断发送的,判定为低风险。

4、安全建议

合理配置后台短信服务器的功能,对于同一手机号码,同一验证发送次数不超过5-10次,且对发送时间间隔做限制,当发送超过一定次数(可以为0),加入验证码验证。

二、邮件轰炸

1、漏洞描述

应用系统未限制邮件的发送次数和频率,造成短时间内大量邮件发送至接收者邮箱,造成大量垃圾邮件。

2、渗透测试

手工找到有关网站注册页面,认证页面,是否具有邮件发送页面,如果有则进行下一步。通过利用burp或者其它抓包截断工具,抓取发送邮件的数据包,并且进行重放攻击,查看邮箱是否在短时间内连续收到10封以上邮件,如果收到大量邮件,则说明存在该漏洞。

3、风险评级

  • 可对任意邮箱轰炸,判定为高风险。

  • 只可对当前邮箱轰炸,判定为低风险。

4、安全建议

合理配置后台邮件服务器的功能,对于同一邮箱,同一验证发送次数不超过5-10次,且对发送的时间间隔做限制。当发送超过一定次数(可以为0),加入验证码验证。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

三、短信定向转发

1、漏洞描述

短信接收人可任意指定。

2、渗透测试

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

3、安全建议

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

用户的手机号不能随意变动,需要认证过程。

四、邮件可定向转发

1、漏洞描述

应用系统发送邮件的接收人可由客户端任意指定。

2、渗透测试

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

3、安全建议

发送邮件时邮箱从当前会话中获取,避免从前端传入。用户的邮箱不能随意变动,需要认证过程。

五、用户密码修改/重置

1、漏洞描述

可通过篡改用户名或ID、暴力破解验证码等方式修改/重置任意账户的密码。

2、渗透测试

密码修改的步骤一般是先校验用户原始密码是否正确,再让用户输入新密码。

3、修改/重置密码机制

修改密码机制绕过方式大概有以下三种:

  • 如果输入新密码的接口可以直接访问,那么在未知原始密码的的情况下即可直接修改密码,通常知道了他人的用户名即可任意修改他人的密码。

  • 如果系统未校验修改密码的用户身份,那么在提交修改密码请求时,攻击者通过输入密码,将用户名或者用户ID修改为其他人的,即可成功修改他人的密码。

  • 当修改密码时系统需要电子邮件或者手机短信确认,而应用程序未校验用户输入的邮箱和手机号,那么攻击者通过填写自己的邮箱或手机号接收修改密码的链接和验证码,以此修改他人的密码。

密码重置机制绕过攻击方式主要有以下两种:

  • 通过正常手段获取重置密码的链接,猜解链接的组成结构和内容(如用户名或者时间戳的MD5值)。在得知他人邮箱的情况下,构造重置他人密码的链接。

  • 在得知他人手机号的情况下,通过穷举手机验证码重置他人的密码。

4、安全建议

  • 一次性填写校验信息(原始密码、新密码等)后再提交修改密码请求。

  • 对客户端提交的修改密码请求,应对请求的用户身份与当前登录的用户身份进行校验,判断是否有权修改用户的密码。

  • 使用手机或邮箱进行验证时,要与修改密码的用户一一对应,且验证码仅一次有效,验证之后即失效,避免暴力破解。

  • 对原始密码进行了验证的情况下,限制输入原始密码的错误次数,防止攻击者暴力破解原始密码。

  • 重置密码链接中的关键信息应随机化,不可预测(例如token机制),且禁止将关键信息返回到客户端。

六、SSO认证缺陷

1、漏洞描述

SSO认证存在缺陷,可越权登录他人账户。

2、渗透测试

  • 信息传输缺乏安全保证:SSO认证通信过程中大多数采用明文形式传送敏感信息,这些信息很容易被窃取,致使重要信息泄露。另外,在通信过程中大多数场景没有对关键信息进行签名,容易遭到伪装攻击。

  • 利用Web服务的安全缺陷:由于单点登录基本上是基于Web服务实现的,所以也不可避免的存在Web服务的安全缺陷,如跨站脚本攻击、越权攻击等。

3、安全建议

  • 建议在不影响业务的前提下,使用HTTPS协议传输。

  • 严格校验SSO认证过程中的用户身份。

  • 过滤用户传入的参数,对特殊符号进行转义或屏蔽。

七、越权

1、漏洞描述

越权访问,这类漏洞是指应用在检查授权(Authorization)时存在纰漏,使得攻击者在获得低权限用户帐号后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。在实际的代码安全审查中,这类漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大。其与未授权访问有一定差别。

2、渗透测试

  • 以超管 admin(高权限用户) 身份登录系统。

  • 找到一个只有超管(高权限)才有的功能的链接,比如:"http://localhost/userManage/userList.do" , 显示出所有的user,并复制此链接。

  • 以普通用户登陆进系统,在地址栏输入:userManage/userList.do,确认是否可以查看到其所有的user。

  • 还可以测试同级别用户的横向越权访问。

3、安全建议

对用户操作进行权限校验,防止通过修改参数进入未授权页面及进行非法操作,建议在服务端对请求的数据和当前用户身份做一个校验检查。

八、恶意锁定问题

1、漏洞描述

通过不断的输入错误的密码,恶意锁定任意账号。

2、风险评级

  • 锁定账户之后,可继续使用认证功能,导致可批量自动化账户锁定,为中风险。

  • 锁定账户之后,可继续使用认证功能,但认证存在防自动化功能,为低风险。

3、安全建议

  • 账户锁定之后应不能继续使用认证功能,如对请求IP进行一个限制,一段时间之后才可以继续尝试认证。

  • 认证功能防自动化操作,如添加图形验证码。

九、业务流程跳跃

1、漏洞描述

应用程序未校验订单数据的取值范围,交易存在负值反冲或正负值对冲。

2、渗透测试

  • 提交订单时拦截请求,修改订单参数为负数,如商品单价、数量、总价等。

  • 提交订单(包含多种商品)时拦截请求,修改部分商品的单价或数量,保证订单总金额为正数。

3、安全建议

  • 服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。

  • 服务器端对客户端提交的交易数据(如商品ID、商品数量、商品价格等)的取值范围进行校验,将商品ID和商品价格与数据库中的数据对比校验,商品数量为大于零的整型数。

  • 服务器端在生成支付订单时,对支付订单中影响支付金额的所有因素(比如商品ID、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。

图片

以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️  支持。 咱们下篇文章见,Bye~👋

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java虚拟机(JVM)从入门到实战【上】

Java虚拟机(JVM)从入门到实战【上】,涵盖类加载,双亲委派机制,垃圾回收器及算法等知识点,全系列6万字。 一、基础篇 P1 Java虚拟机导学课程 P2 初识JVM 什么是JVM Java Virtual Machine 是Java虚拟机。…

频率域采样

1. 频率域采样 (1) 采样的过程:DFT的X(k)是对周期且连续的频谱X()在[0,2pi)上的等间隔采样,采N个点得到的,采样间隔是;频域采样要求时域有限,即假设x(n)的长度是有限值M,x(n)的SFT是X()。 (2) X(k) 做IDF…

live555源码学习(1)

1 基础组件 live项目主要包含了四个基础库、程序入口类(mediaServer)和测试程序(testProgs)。四个基础库是UsageEnvironment、BasicUsageEnvironment、groupsock和liveMedia UsageEnvironment 抽象了两个类UsageEnvironment和T…

蓝桥杯备战刷题two(自用)

1.杨辉三角形 #include<iostream> using namespace std; #define ll long long const int N2e510; int a[N]; //1 0 0 0 0 0 0 //1 1 0 0 0 0 0 //1 2 1 0 0 0 0 //1 3 3 1 0 0 0 //1 4 6 4 1 0 0 //1 5 10 10 5 1 //前缀和思想 //第一列全为1,第二列为从0开始递增1的序…

整数和浮点数在内存中的存储(大小端字节序,浮点数的存取)

目录 1.整数在内存中的存储 2.大小端字节序和字节序判断 2.1什么是大小端&#xff1f; 2.2为什么会有大小端 3.浮点数在内存中的存储 3.1浮点数的存储 3.1.1 浮点数存的过程 3.1.2 浮点数取的过程 3.2 解析 3.3 验证浮点数的存储方式 1.整数在内存中的存储 整数的二进…

前端工程化(黑马学习笔记)

前端工程化介绍 我们目前的前端开发中&#xff0c;当我们需要使用一些资源时&#xff0c;例如&#xff1a;vue.js&#xff0c;和axios.js文件&#xff0c;都是直接再工程中导入的&#xff0c;如下图所示&#xff1a; 但是上述开发模式存在如下问题&#xff1a; ● 每次开发都是…

程序项目打包发布方法,采用InstallShield软件

重点&#xff1a; 1.程序项目做出来了&#xff0c;需要打包发布给用户。如何打包是关键。 2.采用InstallShield软件进行发布。 步骤一&#xff1a;创建一个依赖三方库配置环境的bat文件的项目。 &#xff08;主要测试三方库打包 和如果有bat文件&#xff0c;需要先创建环境&…

等概率事件算法

1等概率的生成(0-8)范围内的正整数 // Math.random 数据范围[0,1) 且 是 等概率的产生随机数 // 应用&#xff1a; // 1.生成等概率的整数&#xff08;等概率的生成(0-8)范围内的正整数 int value (int) (Math.random() * 9); System.out.println("value "…

Three 基础环境 实例(总结一)

Three 基础环境 THREE三要素 &#xff08;scene场景、camera摄像机、renderer渲染器&#xff09; 1、首先我们需要引入three.js包&#xff0c;引入 three.js 对象&#xff08;命名导出->默认导入&#xff09; import * as THREE from three; 2、创建scene场景 const s…

(C语言)函数详解上

&#xff08;C语言&#xff09;函数详解上 目录&#xff1a; 1. 函数的概念 2. 库函数 2.1 标准库和头文件 2.2 库函数的使用方法 2.2.1 sqrt 功能 2.2.2 头文件包含 2.2.3 实践 2.2.4 库函数文档的一般格式 3. 自定义函数 3.1 函数的语法形式 3.2 函数的举例 4. 形参和实参 4.…

手势识别应用介绍

目录 一、功能介绍 二、安装部署说明 2.1 文件目录说明 2.2 手势识别部分 一、功能介绍 这是一个通过摄像头捕获手势&#xff0c;根据不同的手势来做出不同操作的计算机程序。目前可以识别9种手势&#xff0c;可以根据识别到的手势&#xff0c;进行打开应用、增大音量、减小音量…

uniapp+vue基于Android的图书馆借阅系统qb4y3-nodejs-php-pyton

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 框架支持:springboot/django/php/Ssm/flask/express均支持 前端开发:vue 语言&#xff1a;pythonjavanode.jsphp均支持 运行软件:idea/eclip…