web安全测试入门
参考课程:
04-软件安全测试基础-网络协议基础-网络模型_哔哩哔哩_bilibili
1.软件安全测试概述
安全测试:
安全性测试指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程
导致软件出现安全问题的主要原因或根源是软件的安全漏洞
安全漏洞:
特指在硬件、软件、协议的在逻辑设计上或具体实现或系统安全策略上存在的缺陷或错误
漏洞的产生主要是由于程序员不正确和不安全变成引起的
不法者可以通过漏洞获取系统额外权限并对系统植入木马、病毒、以窃取系统资料
威胁到系统安全的错误才是漏洞
安全漏洞危害
系统完整性:非法串改破坏数据的完整性
系统可用性:破坏系统或者网络,导致服务不可用
系统机密性:泄露个人或企业的隐私信息
系统可靠性:造成系统不能正常提供有效服务
(web安全测试四要素:完整性、可用性、可靠性、可用性)
软件安全测试方法
代码安全性测试:主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其持有特有软件安全规则库进行匹配,从中找出代码潜在的安全漏洞
渗透测试:主要使用自动化工具或人工的方法模拟黑客输入,对应用系统进行攻击性测试,从中找出运行时候所存在的安全漏洞
程序数据扫描:数据扫描手段通常是进行内存测试,内存测试可以发现许多注入缓冲区溢出之类的漏洞,而这类漏洞使用除此之外的测试手段都难以发现
软件安全测试内容:
功能验证对设计到安全的软件功能进行有效性验证,如管理模块、权限模块、加密系统、认证系统等
漏洞扫描:安全漏洞扫描主要是借助于特定的漏洞扫描完成的,系统管理员能够发现系统存在的安全漏洞
侦听技术:也称网络监听,可以获取网络上传输的信息,如果从获取的信息中提取到系统的隐私数据,就存在安全性问题
模拟攻击:模拟攻击测试是一组特殊的极端的测试方法,以模拟攻击方式来验证软件系统的安全防护能力
软件安全测试的过程:
基于安全需求,将系统可能面临的安全问题进行分类,画出威胁树,可以针对威胁树选择应对的方法和技术,是未需求分析
1.基于威胁模型,指定计划
以口令安全问题威胁树为例,计划就可基于口令安全可能遭受的各种攻击进行制定
2.规划最小测试单位
并不是模块整体都有安全问题,只需要关注日哦能够以出问题的最小范围即可
3.对系统的可能漏洞进行分级
对系统漏洞按照不同的优先级进行测试
4.设计安全测试用例
根据漏洞类型,精心准备数据,设计测试用例进行测试
5.模拟攻击系统
根据用例,模拟攻击系统,查看系统的状态
6.总结执行结果,提出解决方案
执行用例,得到结果,根据结果现象提出解决方案
安全测试范围:
服务器本身以及网络环境安全
web服务器应用的安全
网站程序安全
web服务器周边安全应用
0day和1day
0day:又叫零时差攻击,是指被发现后立即被恶意利用的安全漏洞,通俗来讲,就是安全补丁与瑕疵曝光的同一日,相关的恶意程序就出现,这种攻击往往具有很大的突发性与破坏性
0day:就是只有你知道的一个漏洞,1day就是刚刚公布在网络上的漏洞(没有超过一天),nday就是这个漏洞已经被公布很久了
web安全测试的测试载体是网络协议,而日常生活中最常见的网络协议是http协议
2 网络协议基础
2.1 网络模型
协议数据的网络传输:
包括两部分:封装与拆解
发送方从上到下,对要发送的数据进行层层封装
发送方从下到上,对要接收的数据进行层层拆解
2.2传输层tcp和udp协议
端口:用于判断一台电脑上某一个应用程序的标识
2.3应用层ip协议
2.4应用层http协议
2.5 对称加密与非对称加密
2.6 摘要技术
2.7 数字签名技术
2.8 cookie和session
2.9 token
3 BurpSuite
3.1 BurpSuite 的安装
步骤:
1.安装jdk8和jdk11,并完成双配置
2.下载BurpSuite:http://portswigger.net/burp (需要放在无中文目录的路径下)
3.安装BurpSuite,选择版本为2.0.11(jdk8即可)
4.激活BurpSuite
注意:
1.BurpSuite的安装需要JDK的环境,如果没有安装或者版本不对,则BurpSuite中的key生成不了。
2.当BurpSuite不用的时候,最好把代理关闭,防止影响网页正常使用
过程可以参考以下链接
BurpSuite安装&&jdk1.8和jdk14共存_burpsuite java1.8-CSDN博客
链接:https://pan.baidu.com/s/1hsZ4QI5scmwo9TGdwMlylA
提取码:p62x