当前位置: 首页 > news >正文

软件测试之简单基础的安全测试方法(另外包含软测面试题库)

文章目录

  • 前言
  • 安全测试是什么
    • 简单基础的安全测试方法
    • 密码安全
    • 操作权限验证
    • SQL注入
    • xss脚本攻击
    • 文件上传
    • 下载安全
    • 漏洞扫描
      • Web扫描
      • APP扫描
  • 面试题库(仅参考)
  • 参考目录


前言

阅读本文前请注意最后编辑时间,文章内容可能与目前最新的技术发展情况相去甚远。欢迎各位评论与私信,指出错误或是进行交流等。


安全测试是什么

安全测试是一种软件测试,可发现软件应用程序中的漏洞,威胁,风险并防止来自入侵者的恶意攻击。 安全测试的目的是确定软件系统的所有可能漏洞和弱点,这些漏洞和弱点可能导致信息,收入损失,组织雇员或外部人员的声誉受损。

安全测试的目标是识别系统中的威胁并衡量其潜在漏洞,以使系统不会停止运行或被利用。 它还有助于检测系统中所有可能的安全风险,并帮助开发人员通过编码解决这些问题。

简单基础的安全测试方法

1.密码安全
2.操作权限验证
3.sql注入;
4.xss脚本攻击;
5.运用扫描工具appscan扫描web系统。
6.扫描app的一般用腾讯wetest 等平台测试。

密码安全

  • 测试前端(web)时我们首先检查一下用户的敏感信息有没有进行加密显示
  • 通过Fiddle抓包工具检查一下用户的敏感信息有没有进行加密后传输如:用户密码,相应的银行卡,个人信息等,再到日志中搜索关键信息,能搜索到,就泄密,存在安全漏洞。
  • 发送请求的数据篡改例如:打开fiddler工具,设置过滤器,设置断点把商城里的支付订单的1000完金额修改成1块钱,再放行发送数据,看是否,支付1块钱,订单支付成功,如果成功则是bug,预期结果是支付金额不对才行。
  • 密码输入错误次数超限会锁定账号
  • 除了账号密码,需要图形验证码或短信验证码
  • 用户名不存在和密码错误需提示用户名或密码错误
  • 密码传输非明文传输,且加密类型不能太简单(如仅通过md5加密),日志系统中也不能将明文密码打印出来
  • 密码加密存储
  • 用系统默认账号admin/123456、admin/admin、root/123456等是否可以登录系统

操作权限验证

访问控制是指用户对系统访问的权限控制,通常包括水平权限和垂直权限。访问控制问题是所有业务系统都可能产生的逻辑类漏洞

水平越权:同一权限(角色)级别的用户之间所产生的问题,如 A 用户可以未授权访问 B 用户的数据等。
垂直越权:不同权限(角色)级别的用户之间所产生的问题,如普通用户可未授权进行管理操作,未登录用户可以访问需授权应用等。

以下是一些权限测试点(仅供参考):
1.通过页面创建不同的角色账号,并且分配角色权限模块,在页面登录不同的账号去确认账号的权限
2.一次只给用户单独设置一个权限,设置之后检查该权限是否生效
3.给用户不设置任何权限,设置之后检查该用户能否使用系统
4.给用户设置全部权限,设置之后检查所有权限是否生效
5.给用户设置部分权限,设置之后检查部分权限是否生效
6.用户正在进行相关的操作,管理员为该用户添加其他权限,是否能进行
7.用户正在进行相关操作,管理员为该用户取消该权限,是否能进行
8.登录用户能否修改自己的权限
9.不给用户授权,是否允许登录
10.只有修改或编辑自己信息的权限时,能否同时修改或编辑其他用户数据的权限
11.用户能否同时属于多个组,各个组的权限能否交叉

  1. 只给用户单独设置一个权限,设置之后检查该权限是否生效
    2.给用户不设置任何权限,设置之后检查该用户能否使用系统
    3.给用户设置全部权限,设置之后检查所有权限是否生效
    4.给用户设置部分权限,设置后检查部分权限是否生效
    5.用户正值进行相关操作,管理员为该用户添加其他权限,是否能进行
    6.用户正在进行相关操作,管理员为该用户取消该权限,是否能进行
    7.设置权限的同时,是否有对应的权限设置日志
    8.对权限树的父子节点关联关系进行测试
    ①选中父权限,检查是否所有的子权限默认被选中
    ②只选择部分子权限,检查对应的父权限师父被选中
    ③删除部分子权限(没有删除部分子权限),此时父权限应该还是选中状态
    ④删除全部子权限,此时父权限应该自动被取消
    9.用户能否根据自己的需要对权限信息进行维护
  2. 除管理员外,用户不能给自己进行权限的设置
  3. 权限数据在数据库中存储时,建议进行加密处理,防止有恶意用户共破数据库后,
    可以给自己任意权限,以给系统造成损失。
    12.赋予该用户权限后,系统界面展示所拥有的权限,并验证权限是否正确
    13.重新注册系统变工登录身份后再登录,检查权限是否正确(检查账号信息混乱)
    14.在有角色管理的情况下,删除包含用户的角色,是否能正确处理
  4. 不同权限登录同一个系统,权限范围是否正常
    16.覆盖系统的所有权限测试
    17.能否添加信息为空的用户(其中包括空用户名及空口令、空用户名非控口令、非空用户名及空口令)
    18.能否添加长用户名及长口令,如果允许,新用户能否正确登录
    19.系统是否允许删除系统管理员这一特殊用户或修改系统管理员口令删除或修改后系统的实际情况
    20.添加用户(用户名、口令):
    ①口令相同,用户名不同
    ②口令相同,用户名相同
    ③口令不同,用户名相同
    ④口令不同,用户名相同
    21.用户登录能否修改本人或其他人的信息,删除本人(高权限对低权限操作,低权限操作低权限)
    22.修改用户信息(包括口令、权限、基本信息)对其他模块的影响
    23.对修改后的用户信息和已经存在的用户信息相同(是否支持信息相重)
    24.不给用户授权,是否允许登录
    25.修改某些设置时,是否会影响具有上级权限及相同权限人员
    26.勾选多项权限时 是否产生了新的权限 或减少了某些权限
    27.只有修改或编辑自己信息的权限时,能否同时修改或编辑其他用户数据的权限
    28.用户能否同时属于多个组,各个组的权限能否交叉;
    29.删除后重新添加的用户是否具有以前的权限;更改用户各项属性(包括权限)看对权限是否有影响。
    30.使用不同权限登录,测试各自权限规定内的功能能够实现
    31.在不同的浏览器或OS中同时分别登录,测试各自权限内功能能否实现
    32.增删改查测试:管理员权限能够增删改查自己/同级/下级的用户设置,普通权限能够删除修改管理员和其他普通权限等级用户的设置
    以上增删改查的操作能否实现相应改动的权限功能,并且查看是否会影响上级权限及相同权限等级的设置
    33.如果有涉及权限划分,那就测试不同权限的用户权限是否一致;修改后的权限再次检查是否回显成功
    34.最后测试关于不同权限用户对数据库的权限控制,如对数据库控制权限的缺省设置的正确性、对数据的增删改查、对不同字段的控制权限

SQL注入

关于SQL注入的博客请参考:https://blog.csdn.net/qq_39635178/article/details/148613215

xss脚本攻击

关于 xss脚本攻击内容可参考:https://www.bilibili.com/video/BV1hY411a7P5
https://blog.csdn.net/qq_64177395/article/details/141260861
https://blog.csdn.net/leiwuhen92/article/details/133294533
https://blog.csdn.net/npc88888/article/details/136454472
https://blog.csdn.net/m0_74249600/article/details/141168141
https://blog.csdn.net/fd2025/article/details/124425225

可通过正向的XSS脚本攻击,以及所给出的防御手段,或者通过白盒的方式 查看代码是否防御了XSS脚本攻击。具体如何从代码层面防御,可以自行查阅资料。

文件上传

(1)上传可执行文件(exe文件)-----------------根据需求而定
(2)上传常见的木马文件------------------------提示不能上传
(3)上传时服务器空间已满----------------------有提示

下载安全

(1)文件下载是否可以通过修改路径下载其它文件
(2)需权限下载的文件是否可以绕过鉴权直接访问链接进行文件下载

漏洞扫描

Web扫描

AppScan是一款商业化的web安全扫描工具,web扫描领域十分受欢迎

【安全测试】AppScan——下载安装与使用教程(图文详解)
[安全测试】appscan下载与安装
Appscan 的安装与使用
漏扫工具Appscan使用简介
安全测试:AppScan扫描工具教程
漏扫工具Appscan使用(非常详细)

通过appscan扫描工具去扫描,我们一般是这样操作的;
1.启动软件进入主界面—>选择创建新的扫描:
2.在弹出的新建扫描对话框中选择常规扫描:
3.在弹出的扫描配置向导对话框中选择AppScan(自动或手动),点击下一步:
4.在此页面中填写需要扫描系统的网址,点击下一步:
5.选择登陆方式为记录,点击下一步:
6完成系统登录操作后,关闭浏览器,选择登录管理中的“详细信息”;
7.在“详细信息”中,取消“激活会话中的检测”,同时在“登录会话标识中”,对变量参数值进行跟踪以确保参数的正确处理而获得系统访问权限;
8.把密码修改页面URL、用户权限删除URL等页面添加至排除测试范围,防止Appscan的请求产生相应影响(防止Appscan修改密码或删除用户帐号);
9.在“自动表单填充”中,填入用户名和密码参数,并填写参数值,其余不做修;
10.如果测试过程中,应用服务出现性能响应过慢的问题,适当调整测试线程数为2~5;
11.测试策略选择为“严重性”进行过滤只勾选关注的严重性级别,把“高”、“中”和“低”选上。
13.点击确定按钮,结束扫描配置工作;
14.点击扫描按钮,选择“仅探索”,Appscan开始执行探索工作;
15.探索自动结束后,点击“手动探索”按钮,此时,在弹出的IE浏览器窗口中登录系统,手工的任意访问系统页面(1~10个),关闭浏览器;
16.在弹出的参数添加窗口中,点击“确定按钮”;
17.点击扫描按钮,选择“完全扫描”,Appscan开始执行测试工作;
18.测试执行结束后,点击报告按钮,选择关注的测试结果信息,勾选“报告内容”里的所有勾选;
19.“保存报告”,保存类型建议选择为html;然后分析报告。

APP扫描

APP安全测试实操:https://blog.csdn.net/qq_43775006/article/details/129322994
WeTest小程序渗透测试
移动端App安全扫描工具MobSF安装及入门使用

面试题库(仅参考)

https://blog.csdn.net/weixin_45912307/article/details/108661479
https://blog.csdn.net/weixin_45912307/article/details/108809185
https://blog.csdn.net/weixin_45912307/article/details/109457138
https://blog.csdn.net/weixin_45912307/article/details/109459134
https://blog.csdn.net/weixin_45912307/article/details/109481695
https://blog.csdn.net/weixin_45912307/article/details/109500952
https://blog.csdn.net/weixin_45912307/article/details/109501092
https://blog.csdn.net/weixin_45912307/article/details/109523627
https://blog.csdn.net/weixin_45912307/article/details/109523627
https://blog.csdn.net/weixin_45912307/article/details/109523632
https://blog.csdn.net/weixin_45912307/article/details/109438188
https://blog.csdn.net/hong521520/article/details/125717813
https://blog.csdn.net/2301_80119299/article/details/143802088
https://blog.csdn.net/2401_86943461/article/details/143774658
https://blog.csdn.net/huace3740/article/details/140217118
https://blog.csdn.net/u012111923/article/details/138575613
https://blog.csdn.net/2301_77645834/article/details/144312281
https://blog.csdn.net/nhb687095/article/details/140064091
https://blog.csdn.net/2201_76100073/article/details/147231003


参考目录

https://blog.csdn.net/karsa__/article/details/111934825
https://blog.csdn.net/m0_64983639/article/details/128790871

相关文章:

  • 【Flutter】程序报错导致的灰屏总结
  • LangChain自动化工作流实战教程:从任务编排到智能决策
  • 计算机网络学习笔记:运输层概述UDP、TCP对比
  • IDEA高效快捷键指南
  • 刚学到一个使用共享软件而禁用弹窗的工具:微软电脑管家
  • 精益数据分析(104/126):免费移动应用的用户活跃率与付费转化优化策略
  • 项目拓展-Jol分析本地对象or缓存的内存占用
  • OCCT基础类库介绍:Modeling Data - 2D Geometry 3D Geometry Topology
  • ImportError: DLL load failed while importing win32api: 找不到指定的模块
  • 5G核心网Non-IP数据报文转发机制:Unstructured会话与协议栈解析
  • 每天一个前端小知识 Day 1
  • 【一】零基础--分层强化学习概览
  • Android音视频流媒体基础总结
  • nacos-作为注册中心与springcloud整合(三)
  • 【项目实训#09】智能代码文件助手模式前后端设计与实现
  • 安装laravel11和laravel12的一些报错问题解决
  • Typecho安装后后台 404 报错解决
  • Redis集群模式之Redis Cluster(2)
  • PHP+mysql雪里开轻量级报修系统 V1.0Beta
  • 端到端记忆网络 vs 神经图灵机:外部记忆的两种哲学之争
  • 天津网站建设的公司/广州专业seo公司
  • 产品展示型网站有哪些/应用商店搜索优化
  • 最好记得网站域名/电商平台发展现状与趋势
  • 如何设计一个完整的网站/如何做网络推广
  • 网站页面 原则/seo公司推广
  • 在线制作logo图标免费生成/seo站长工具查询