安全测试:软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准(客户需求、国家标准、技术层面)的过程。
安全分层:
操作系统层面:端口、账号权限、补丁更新、渗透测试(操作系统层面)
网络通信层面:协议(分层攻击)
应用产品本身
常见的web安全测试点:
权限:
用户
角色(具备权限)or 组:更方便进行用户权限管理
权限:例如操作系统的r w x
超级管理员(分层)
权限向下分配(扩散)
不能提权、不能丢失
认证:
是指在交互过程中,怎么确保权限得到落实的一个过程。
在一个web系统中,最常用来实现认证的就是session和cookie。
从功能角度:测试功能即可
从安全角度,关注点:
不要在cookie中携带敏感数据。例如:用户名密码、校验字段等。
(cookie数据存在客户端,攻击者易获得PC本地相关cookie文件。敏感数据放在session中,cookie存放session id)
敏感数据加密
session的过期和续存机制是否合理
SQL注入:
用户在访问系统时,通过一些非法的输入改变应用的数据库访问逻辑,达到跳过验证、盗取数据等非法目的的一种攻击方式。
例如:密码输入:1' or 1=1 limit 1#
实际查询语句:select * from user_info where username = ‘xxx’ and password = ‘1’ or 1=1 limit 1#
XSS跨站脚本攻击:
一般来说时通过在资源中嵌入一些非法的前端脚本来达到攻击目的。
持久型XSS攻击:
钓鱼网站
站点存在安全漏洞被攻击者利用
非持久型XSS攻击:修改URL或者其他临时性的措施让用户访问,一次有效
二维码
各种链接
例如:注册新用户j界面的备注中加入如下代码:
<input type = "button" value = "点击看美女" onclick = "javascript:alart(\'你被黑了\')">
文件上传:
文件上传:数据从用户到服务器
上传文件的类型、大小、数量
不能只对后缀名检测,要对内容进行检测
上传文件后要重命名(防止URL访问时通过文件名访问执行)
文件下载:
下载文件需权限控制(非必要),例如:会员下载小说
下载文件不能通过静态资源方式访问,要提供基于接口访问的方式
学习参考途径如下:
1、原文链接:https://blog.csdn.net/Blllllll_/article/details/109646142
2、B站视频课学习笔记整理,当前找不到出处了,后续补充。