安全测试-初见朦胧

        安全测试是一种通过评估系统的安全性来识别和解决潜在安全问题的过程。它涉及对系统的漏洞和弱点进行检查,并验证系统对恶意攻击的抵御能力;

        安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。

一、安全问题的危害

        信息泄露于普通用户而言,可能会个人生活造成巨大影响。比如,泄露了电话号码,信息可能会在不同场景下被无数次倒卖,会在不合适的时间接收到来自于各个角色的骚扰电话,还能带来诈骗风险。如果信息涉及到了家庭住址,还可能带来人身安全的隐患。如果信息涉及到了电子邮箱,那么有可能收到N多封毫无价值的邮件。

        信息泄露于公司而言,可能会引起重大的社会舆论,造成公司的重大公关事件,甚至影响投资人对公司的信心。同时给竞争对手可乘之机,利用安全事件打压对方,需要很长时间来修复安全问题带来的负面影响。

        历史上发生过许多重大的安全问题。比如,CSDN600万用户信息泄露、Facebook安全事件、共享单车数据泄露事件,均在不同程度上对客户和公司造成了重大影响和损失。当然,阿里作为全球领先互联网公司,每天受到外界攻击达数亿次,也同样会发生不同程度的数据泄露问题。如何在合适的时间通过合适的手段来确保我们服务好客户一直是涉足安全的同学致力学习和研究的方向。

二、安全测试能做什么

       安全测试通过有效的方法和手段,旨在在保证系统功能稳定可用的同时确保应用安全,防止外部攻击、数据泄露,并提升IT产品的安全质量。它的目标是在发布前发现安全问题并修复,以降低成本。同时,安全测试还应该具备合理客观的安全度量,验证安装在系统内的保护机制在实际应用中是否能够有效保护系统,防止非法入侵和各种干扰。

安全测试能够执行以下任务:

1. 识别和评估系统的安全漏洞和弱点:安全测试可以帮助发现和分析系统中的安全漏洞和弱点,包括代码缺陷、配置错误、逻辑漏洞等。

2. 评估系统对恶意攻击的抵御能力:通过模拟攻击者的行为,安全测试可以检查系统在面对不同类型的攻击时的抵御能力,如注入攻击、跨站点脚本、拒绝服务等。

3. 验证身份认证和授权机制:安全测试可以验证系统的身份认证和授权机制是否可靠,确保只有授权用户能够访问系统的敏感功能和数据。

4. 评估数据保护和隐安全测试可以做以下几项工作:

1). 发现系统中的安全漏洞:通过对系统进行渗透测试、漏洞扫描和应用程序安全测试等,可以发现系统中存在的各种漏洞和弱点,如不安全的代码、配置错误、未修补的漏洞等。

2). 评估系统的安全性:通过检查系统的认证和授权机制、数据加密方式、网络安全配置等,可以评估系统对安全威胁的抵御能力,帮助组织了解系统的安全状况。

3). 验证系统的合规性:安全测试可以帮助组织验证系统是否符合相关的安全标准和合规要求,如PCI DSS、ISO 27001等,以确保系统在法律和行业规定的范围内运行。

4). 提供安全建议和改进措施:安全测试结果可以提供有关系统安全缺陷的详细信息以及相关的修复建议,帮助组织优化系统的安全性并采取相应的改进措施。

5). 增强组织的安全防御能力:通过安全测试,组织可以提前发现潜在的安全风险并采取措施加强系统的安全防御能力,减少遭受安全攻击和数据泄露的风险。 总的来说,安全测试是为了发现系统中的安全漏洞、评估系统的安全性和合规性,并提供改进建议,以帮助组织确保系统的安全性和减少安全风险。

三、常见安全漏洞及测试方法&工具

垂直权限问题及测试方法

        垂直权限漏洞是指Web应用没有做权限控制,或仅仅在菜单上做了权限控制,导致恶意用户只要猜到了其他页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。

        业务测试过程中,要设计此场景安全测试用例,并切实落地执行:用户A登录后,打开浏览器NetWork,查看所有XHR网络请求。用户B登录后,A的请求,进行重复操作,若可以正当操作,则表示接口存在越权问题。CR过程,要针对有update、delete、add接口做着重观察。

水平权限问题

        水平权限漏洞是指Web应用程序接收到用户请求时,没有判断数据的所属人,或者在判断数据所属人时是从用户提交的参数中获取了userid,导致攻击者可以自行修改userid修改不属于自己的数据。例如,UserA和UserB的权限是一样的,但是A可以看到B的数据,就是发生了水平越权问题。

        容易发生水平越权的地方,除了身份(会话ID)标识外,站点还用其它信息(手机号、员工编码、工号或者使用Hash算法生成的)用来标识用户或用户信息。例如,getAccount.do?accId=12345 ,此类接口就是高危的接口。

        通常情况下,我们会用两个测试账号来访问同一个Url,看能否返回相同的数据,如果能够互通,则说明后端接口为对当前用户做数据隔离,存在水平权限问题。系统功能测试过程中,设计两个测试账号,同时登陆两个测试账号,对比同一个页面的数据是否存在交叉。CR过程中,注意针对查询接口看是否都加上了用户属性作为数据隔离条件。

命令注入/执行

漏洞原理:用户输入被当做/拼接成服务器命令,交由生产网服务器代为执行,从而导致用户可以对服务器执行任意命令,甚至置入木马,反连,提权等风险操作;

测试方法:STC安全扫描;针对需要执行命令的接口,输入”cat /etc/passwd”或”| cat /etc/passwd”或者其他命令看是否会返回该命令的执行结果,只要有一个命令可以返回执行结果,判定有效;

代码注入/执行

漏洞原理:用户输入的代码被服务器直接执行,从而导致用户可以对服务器执行任意命令,甚至置入木马,反连,提权等风险操作;

测试方法:安全扫描;针对需要执行代码的接口,根据可以执行的代码不同构造服务器命令调用的代码进行测试,若可以正常执行,则漏洞有效;

SSRF(服务端请求伪造)

漏洞原理:服务端代理用户对用户输入的URL无条件发起请求,并将response返回给用户。用户可以填写内网的任意IP以及端口,用来进行内网嗅探;

测试方法:STC安全扫描在某测试服务器上搭建对应测试HTTP服务器;在相关业务接口中填写测试服务器地址提交,查看测试HTTP服务器是否会有访问记录,若有则说明有漏洞;

XXE(XML实体注入)

漏洞原理:用户上传XML文件,服务器在进行解析时没有禁止实体解析,导致schema中的URL被访问,造成类似SSRF的风险;

测试方法:安全扫描:在某测试服务器上搭建对应测试HTTP服务器;构造特定XML文件,其中某个schema URL为测试HTTP服务器地址;在XML上传接口上传该文件,若有看到测试服务器访问记录则有漏洞;Java业务建议使用集团扫描器进行扫描

反序列化漏洞

漏洞原理:从用户可控的位置(cookie,参数)中读取序列化字符串,在服务端进行反序列化代码执行操作,因为反序列化的内容可以写入任意代码,导致代码注入执行

测试方法:安全扫描;构造可执行服务器命令的序列化字符串,填入对应参数/cookie中看是否可以执行成功;

SQL注入

漏洞原理:用户输入的参数会直接拼接进入SQL语句中实现业务逻辑,若参数为精心构造的SQL语句,将会产生本意之外的SQL执行,比如拆解sql的root密码,进一步拖库

测试方法:安全扫描;使用sqlmap进行sql注入扫描;

JSONP劫持

漏洞原理:Jsonp跨域提供数据传输时,未对访问来源进行判断,导致可被未授权的他方读取接口中的敏感信息;

测试方法:安全扫描;通过burpsuite抓包,若发现有用户个人标识/资源标识出现在参数或者cookie中时,尝试修改并重放请求,若返回正常则存在漏洞

任意URL重定向

漏洞原理:业务进行跳转的URL的域名可以被用户任意修改(跳转目标url在某个参数/cookie中),从而跳转至伪造的钓鱼网站,引导用户在网站上进行敏感信息输入,从而

测试方法:安全扫描;修改跳转目标URL参数,若能跳转则有漏洞;

XSS(跨域脚本攻击)

漏洞原理:用户输入的内容,不经过处理直接展示在web页面上,若用户输入的是可执行的js脚本将会被直接执行,则可能导致session_id被盗取,csrftoken被盗取,jsonp劫持refer防御失效,同域名下敏感信息页面被盗取等后果

测试方法:安全扫描;在输入框输入”< >’ “ &”,当该输入框内容展示在页面上的时候,查看页面源码,若原样输入,则有漏洞,若被转义成”&lt,&gt”等html实体,则说明做了安全防护;

CSRF(客户端请求伪造)

漏洞原理:常规http接口的path,method, 参数等内容完全可以被拆解,有人会伪造某些高危操作接口(比如点赞,收藏,好评),将该接口伪装之后(比如生成短链接,二维码)发送给其他用户点击,此时等于在不知情情况下做了一些对自己有害的操作

测试方法:安全扫描;使用burpsuite进行抓包,将参数中的token删除,或者设置为空,重放请求,若正常访问则说明有漏洞;

短信/邮件/电话炸弹

漏洞原理:短信/电话号码,邮箱地址由用户填写,并且可以无频率次数的给其发送信息,打电话,用以进行骚扰用户;

测试方法:安全扫描;使用burpsuite进行信息发送接口抓包,并利用repeater功能进行批量访问,如果每次都成功说明没有做防护;

登录口爆破

漏洞原理:登录口设计不当,风控策略缺失/不得当,可以进行用户名密码爆破

测试方法:安全扫描;使用burpsuite,构造弱口令字典,使用repeater功能访问登录接口;

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

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

相关文章

iPhone手机怎么恢复出厂设置(详解)

如果您的iPhone遇到了手机卡顿、软件崩溃、内存不足或者忘记手机解锁密码等问题&#xff0c;恢复出厂设置似乎是万能的解决方法。 什么是恢复出厂设置&#xff1f;简单来说&#xff0c;就是让手机重新变成一张白纸&#xff0c;将手机所有数据都进行格式化&#xff0c;只保留原…

LeetCode_01 精度丢失

1281. 整数的各位积和之差 给你一个整数 n&#xff0c;请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 示例 输入&#xff1a;n 234 输出&#xff1a;15 解释&#xff1a; 各位数之积 2 * 3 * 4 24 各位数之和 2 3 4 9 结果 24 - 9 15示例 …

说说docker run的--detach

说说docker run的--detach 当我们使用了 docker的 run命令运行一个新容器&#xff0c;然后也发现他端端正正的呆在我们的容器列表中&#xff0c;但是就是无法使用 exec命令&#xff0c;这是什么原因呢&#xff1f; $docker docker ps -a CONTAINER ID IMAGE …

接口返回一张图片处理

接口返回一张图片处理 axios.get(/test, {params,responseType: arraybuffer }).then(res > {const url data:image/png;base64,${btoa(new Uint8Array(res.data).reduce((data, byte) > data String.fromCharCode(byte), ))}/*** btoa()是JavaScript的全局函数* 用来…

中级课程-SSRF(CSRF进阶)

文章目录 成因危害挖掘 成因 危害 挖掘

【Kubernetes】Kubernetes之kubectl详解

kubectl 一、陈述式资源管理1. 陈述式资源管理方法2. 基本信息查看3. 项目周期管理3.1 创建 kubectl create 命令3.2 发布 kubectl expose命令3.3 更新 kubectl set3.4 回滚 kubectl rollout3.5 删除 kubectl delete 4. kubectl 的发布策略4.1 蓝绿发布4.2 红黑发布4.3 灰度发布…

Linux CEF(Chromium Embedded Framework)源码下载编译详细记录

Linux CEF&#xff08;Chromium Embedded Framework&#xff09;源码下载编译 背景 由于CEF默认的二进制分发包不支持音视频播放&#xff0c;需要自行编译源码&#xff0c;将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。 前置条件 下载的过程非…

Go基于sqlx实现的sql增删改查的工具类

文章目录 1、驱动下载1.1、依赖安装1.2、SQL数据库驱动包列表 2、实现代码2.1 sql工具类代码2.2 使用例子2.3 运行效果 1、驱动下载 sqlx是Go语言内置database/sql的扩展包&#xff0c;它在内置database/sql基础上提供更简洁的数据库操作。 GitHub地址:https://github.com/jmo…

lc2536.子矩阵元素加1

暴力解法&#xff1a;直接按照题目所示在矩阵的相应位置加一 时间复杂度&#xff1a;O(n2 * queries.length) 空间复杂度&#xff1a;O(1) 二维差分&#xff1a;创建二维差分数组&#xff0c;通过对差分数组的修改来影响原来的数组&#xff0c;最后还原 时间复杂度&#x…

python工具库有哪些,python工具包怎么用

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python工具包有哪些&#xff0c;python工具包怎么用&#xff0c;现在让我们一起来看看吧&#xff01; 最近有多位读者留言&#xff0c;咨询更便捷、高效的python编程开发工具&#xff08;IDE&#xff09;&#xff0c;本…

Q-Vision+Kvaser CAN/CAN FD/LIN总线解决方案

智能联网技术在国内的发展势头迅猛&#xff0c;随着汽车智能化、网联化发展大潮的到来&#xff0c;智能网联汽车逐步成为汽车发展的主要趋势。越来越多整车厂诉求&#xff0c;希望可以提供本土的测量软件&#xff0c;特别是关于ADAS测试。而Softing中国推出的Q-Vision软件不仅可…

数据结构--BFS求最短路

数据结构–BFS求最短路 BFS求⽆权图的单源最短路径 注&#xff1a;⽆权图可以视为⼀种特殊的带权图&#xff0c;只是每条边的权值都为1 以 2 为 b e g i n 位置 以2为begin位置 以2为begin位置 代码实现 //求顶点u到其他顶点的最短路径 void BFS_MIN_Distance(Graph G, int u…

【flask sqlalchmey】一次性将返回的列表对象或者 一行数据对象转成dict---flask-sqlalchemy输出json格式数据

def model_to_dict(object):return {c.name: getattr(object, c.name) for c in object.__table__.columns}#将一组数据转为list def scalars_to_list(object):return [model_to_dict(c) for c in object]class Sysdict(Base,SerializerMixin):__bind_key__ forest_fire_contr…

基于kubeadm部署K8S集群:上篇

目录 一、环境准备 1、主机初始化配置 2、配置主机名绑定hosts&#xff0c;不同主机名称不同 3、主机配置初始化 4、部署docker环境 二、部署kubernetes集群 1、组件介绍 2、所有主机配置阿里云yum源 3、安装kubelet 、kubeadm 、kubectl 4、配置init-config.yaml 5、…

spring源码高级-图灵周瑜

实现factorybean可以产生代理对象

ADB连接安卓手机提示unauthorized

近期使用airtest进行自动化测试时&#xff0c;因为需要连接手机和电脑端&#xff0c;所以在使用adb去连接本人的安卓手机vivo z5时&#xff0c;发现一直提示unauthorized。后来经过一系列方法尝试&#xff0c;最终得以解决。 问题描述&#xff1a; 用数据线将手机接入电脑端&…

嵌入式面试6---操作系统原理

6 优先级反转问题在嵌入式系统中是一中严重的问题&#xff0c;必须给与足够重视。 a) 首先请解释优先级反转问题 b) 很多RTOS提供优先级继承策略(Priority inheritance)和优先级天花板策略(Priority ceilings)用来解决优先级反转问题&#xff0c;请讨论这两种策略。 答&#xf…

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据

eeprom 说明 eeprom介绍 AT24C01A&#xff0c;1K串行EEPROM&#xff1a;内部组织16页8字节&#xff0c;1K需要一个7位数据字地址进行随机字寻址。AT24C02,2K串行EEPROM&#xff1a;内部组织32页8字节&#xff0c;2K需要一个8位数据字地址进行随机字寻址。AT24C04,4K串行EEPRO…

Android 高级进阶知识整理

Android Framework 启动流程 init 进程启动过程 Android系统启动流程 Zygote启动流程及源码分析 APP启动流程 init进程是Android用户空间第一个进程&#xff0c;主要做以下3件事情&#xff1a; 创建和挂载启动所需的文件目录。初始化和启动关键服务&#xff0c;守护关键…

以太网帧格式与吞吐量计算

以太网帧结构 帧大小的定义 以太网单个最大帧 6&#xff08;目的MAC地址&#xff09; 6&#xff08;源MAC地址&#xff09; 2&#xff08;帧类型&#xff09; 1500{IP数据包[IP头&#xff08;20&#xff09;DATA&#xff08;1480&#xff09;]} 4&#xff08;CRC校验&#xff…