随着互联网的飞速发展,web应用在软件开发中所扮演的角色变得愈来愈重要,同时,web应用遭受着格外多的安全攻击,其缘由在于,如今的网站以及在网站上运行的应用在某种意义上来讲,它是全部公司或者组织的虚拟正门,因此比较容易遭受到攻击,存在安全隐患。php
今天主要给你们分享下有关安全测试的一些知识点以及注意事项。前端
一个系统的安全验证点包括上传功能、注册功能/登录功能、验证码功能、密码、敏感信息泄露、越权测试、错误信息、session等。web
一、上传功能sql
上传中断,程序是否有判断上传是否成功数据库
上传与服务器端语言(jsp/asp/php)同样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行安全
二、注册功能/登录功能服务器
请求是否安全传输cookie
重复注册/登录网络
关键cookie是否httponlysession
会话固定:利用session的不变机制,获取他人认证和受权,而后冒充
3 、验证码功能
短信轰炸
验证码一次性
四、 忘记密码
经过手机号/邮箱找回
程序设计不合理,致使能够绕太短信验证码,从而进行修改(使用burpsuite抓包,修改响应值true)
5 、敏感信息泄漏
6 、越权测试
不登录系统,直接输入下载文件的URL是否能够下载/直接输入登陆后页面的URL是否能够访问
手动更改URL中的参数值可否访问没有权限访问的页面
不一样用户之间session共享,能够非法操作对方的数据
7 、错误信息
八、 Session
主要归结为如下几点:(后期能够优化成一个安全测试的框架结构)
一、日志/提示
在系统的初期,通常比较容易发现的问题就是在进行一些错误或者反向测试时,在页面的提示中会出现带有明显的数据库的表或者字段的打印,或者会出现一些敏感词,日志里面相似密码,卡号,身份证号没有相应的明密文转换,而这些敏感词/明密文不互转的存在,就会致使攻击者可以获取到,从而进行简单粗暴的攻击,轻易的攻击服务器或者数据库,这就会危害到整个系统!
二、重复性
大部分的web网站都会有注册功能,而相似咱们负责支付这块也都会有开户,就注册跟开户,基本上需求上都会有惟一性的校验,在前端就会进行拦截,但若是使用jmter进行参数以及参数值的新增,有可能新增成功,就会致使页面系统里面会出现相同数据,可能致使整个功能的出错。
三、次数限制
相似发单,登陆或者短信,若是没有进行相应的限制,如短信,没有进行限制次数,攻击者就会经过短信轰炸,攻击系统,致使系统瘫痪,其余客户就会使用不了该系统。
四、越权测试
(基本上大部分系统都没有明确的写出越权方面的需求)一个web系统,通常地址栏都会有参数的带入,如:用户号,订单号或者是其余的一些参数,而在这个基础上一个系统都会有不少用户,或者不少等级,如:A大于B大于C,那我使用C用户进行登陆,查看C用户所属的订单,在地址栏中会有订单号的参数带入,若是系统没有进行相应的限制,此时C用户就能够修改订单号从而能够看到B乃至A用户的数据,这就可能致使数据的泄露,再者,若是能够修改用户的用户号,没有作处理,这样就能够对全部数据进行操做,整个系统就乱了,影响很大。
五、SQL注入/XSS攻击
主要是输入框的校验/拦截以及是否转义,若是没有系统没有对输入的内容进行处理,那攻击者就能够输入一段SQL语句,或者一段代码,在后台进入到相应的功能,就会致使整个功能是错乱的,其余正经常使用户所提交的数据也查看操做不了,或者提交的代码是死循环(">),就会关闭不掉,因此这点是很是重要的。
基本上上述的五点都是在测试中,系统真实存在,发生的问题,还有其余问题就不一一例举了,其中越权跟SQL注入以及XSS攻击都是重中之重!
上面所述的都是须要人工进行手动参与,且人力操做时不会那么饱满全面,因此这是一个遇到的小问题。如今有一个针对web系统进行漏洞扫描的工具:AWVS,它经过网络爬虫测试你的网站安全,检测流行安全漏洞,针对漏洞主要分为四个等级:高危、中危,低危以及优化,它会进行内外连接的安全性,文件是否存在以及传输是否安全,也包含SQL注入跟XSS攻击,输入地址,用户名密码后,进行扫描完成后会展现相应的数据:漏洞的数量,漏洞的描述,建议性的修复;扫描网站的时长,文件数据量,环境信息等,较为全面!
主要根据如下六点来实现一个较为完整的安全测试的思路,框架就是根据半手工、半自动来实现整个系统的验证。
如今的安全测试大可能是半手工、半自动化,但都不是专业级,因此还在摸索阶段,只能尽量地去发现系统中存在的漏洞,且测试理论很难适用于安全领域;
安全测试基础理论薄弱,当前测试方法缺乏理论指导,也缺少更多的技术产品工具 ;
安全测试须要对系统所采用的技术以及系统的架构等进行分析,这方面也是较为薄弱的环节!
做者:王鹏飞
来源:宜信技术学院