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

news2024/11/15 17:48:35

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

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

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

短信轰炸

1

漏洞描述

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

2

渗透测试

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

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

3

风险评级

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

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

4

安全建议

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

邮件轰炸

1

漏洞描述

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

2

渗透测试

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

3

风险评级

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

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

4

安全建议

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

短信定向转发

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、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。

  •  总结

    如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

      自动化测试相关教程推荐:

    2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

    2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

    测试开发相关教程推荐

    2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

    postman/jmeter/fiddler测试工具类教程推荐

    讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

    2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

    2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

      总结:

     光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

    ​​​

    ​​​

    如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

    如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

    在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

    我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

    测试开发视频教程、学习笔记领取传送门!!

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

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

相关文章

八字入门书介绍

《千里命稿》,此书是民国时期上海的韦千里先生所著,是他主讲的命学培训班的讲义,成书时间在1935年。该书语言简练、述理清晰,是讲述子平命学概念的佼佼者,尤其是对五行、六神的性质讲解,可以说是此书的精华…

xpath的使用以及原理-元素定位

# 查找文本框输入文本 driver.find_element(By.CLASS_NAME,"nav-search-input").send_keys("i_cecream查找到了") #查找到之后点击 driver.find_element(By.CLASS_NAME,"nav-search-btn").click()time.sleep(30)selenium4的解析。 client调用se…

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

动态内存的管理

1.为什么要有动态数组呢 int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 上述开辟空间的方式有两个特点: 空间开辟大小是固定的数组在申明的时候,必须指定数组的长度,数组空间一旦确定了大小…

【AI自媒体制作】【AI工具】天工AI

链接:天工AI 目前chatgpt3.5已经免费,很多AI平台都可以进行一定层度的白嫖,对于个人开发者是一件好事,有些会员就没必要充值了。 天工AI是比较常见的AI工具了,可以识别图片、智能问答、生成图片等。当然对于一个程序员…

关于电商独立站搭建中电商API数据采集接口的应用

搭建供应链系统时,您可能需要与电商平台进行集成,以实现订单管理、库存同步、物流跟踪等功能。以下是一些常见的电商接口,可以帮助您构建供应链系统: 1. **淘宝开放平台接口**:淘宝开放平台提供了丰富的接口&#xff…

上位机图像处理和嵌入式模块部署(树莓派4b和驱动的编写)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 树莓派4b上面还支持驱动代码的编写,这是我没有想到的。这里驱动,更多的是一种框架的编写,不一定是编写真正的驱…

Selenium web自动化测试环境搭建

Selenium web自动化环境搭建主要要经历以下几个步骤: 1、安装python 在python官网:Welcome to Python.org,根据各自对应平台如:windows,下载相应的python版本。 ​ 下载成功后,点击安装包,一直…

排序之插入排序:从斗地主到插入排序

目录 1.斗地主如何摸牌 2.从摸牌想到插入排序 3.完成插入排序 4.结束语 1.斗地主如何摸牌 不知道各位是否玩过几乎人人都玩过的斗地主游戏呢?相必各位或多或少都玩过一点,再没玩过也看别人打过。今天博主就将从这个游戏为大家讲解我们的插入排序。 在…

shell编写

运算符 echo 打印 unset 删除 [ boolean表达式 ] 注意中括号中有两个空格,两个空格中添加表达式 0为true 1为false $?查看结果 -ge 大于等于 lt小于 le小于等于 eq等于 ne不等于 格式& | [ 表达式 ] -o是或者or的意思 -a是and的意思 &#xff01…

访问学者申请的成功经验

在申请成为访问学者时,经验是至关重要的。下面知识人网小编将介绍一些可以帮助您成功申请的经验和技巧。 首先,了解目标机构或大学的研究方向和需求是非常重要的。在申请之前,仔细研究该机构的学术项目、研究成果以及教授的专业领域&#xff…

kaggle 泰坦尼克号2 得分0.7799

流程 导入所要使用的包引入kaggle的数据集csv文件查看数据集有无空值填充这些空值提取特征分离训练集和测试集调用模型 导入需要的包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarni…

Redis 逻辑过期策略设计思路

引言: 当我们平常使用Redis缓存的时候,会出现一种场景, redis的key到过期时间了,总是需要到数据库里面去查一遍数据再set回redis,这个时候如果数据库响应比较慢,那么就会造成用户等待,如果刚好…

python爬虫小案例——汽车之家

本篇文章是使用bs4中的BeautifulSoup和requests解析网页和获取数据👑🌟 文章目录 🌟前言一、🍉bs4中的BeautifulSoup二、🍉bs4的语法三、🍉内容实践1. 确定想要爬取的内容2. 分析网页3. 获取数据分析 &…

【ThinkPHP框架教程·Part-02】开发规范和目录结构

文章目录 一、开发规范1、目录和文件的规范2、函数和类、属性命名规范3、常量与配置的规范4、数据表和字段的规范 二、目录结构1、单应用模式目录结构图(默认)2、多应用模式目录结构图(自定义)3、仅允许public目录对外访问4、其他…

软考141-上午题-【软件工程】-杂题+小结

一、杂题 真题1: 真题2: 真题3: 真题4: 真题5: 真题6: 真题7: 真题8: 真题9: 真题10: 真题11: 真题12: 真题13: 真题14&a…

4.20 IO流

IO流结构 InputStream(字节输入流) public static void main(String[] args) {// byteInputStream();// byteInputStream1();// byteInputStream2();byteInputStream3();}// 使用字节流时对于中文汉字基本都会出现乱码问题,因此对中文乱码问…

ccfcsp201312-2 ISBN号码

注意&#xff1a;50分 -- u10&#xff0c;最后一位为X 代码&#xff1a; #include <bits/stdc.h> using namespace std; string s; int a[12]; int main() {cin >> s;a[1] s[0] - 0;a[2] s[2] - 0;a[3] s[3] - 0;a[4] s[4] - 0;a[5] s[6] - 0;a[6] s[7] - …

常见排序算法(插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,计数排序,基数排序,桶排序)

一.排序的概念 1.排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作 2.稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排…

【WinForm】背景图片绘制无效果的解决方法

例如&#xff0c;在WinForm桌面的窗体设置了背景图片&#xff0c;尝试从上方绘制时却未能产生预期效果, 就是从背景图片上面绘制却没有效果。 文章目录 示例改进 下面是一个在窗体背景上绘制圆形边框的示例。 示例 修改前&#xff0c;代码如下 var gCtx Graphics.FromImage…