web 应用无处不在,存在于每个行业,现在的发展速度非常快速,且 web 应用在软件开发中所扮演的角色不断成长并且越来越重要,而现在,web 应用遭受着格外多的安全攻击,其原因在于,现在的网站以及在网站上运行的应用在某种意义上来说,它是所有公司或者组织的虚拟正门,所以比较容易遭受到攻击,存在安全隐患
今天主要给大家分享下有关安全测试的一些知识点以及注意事项,主要是以下几点:
1、安全测试的验证点:
一个系统的安全验证点,大致主要可以从以下来作为切入点,攻击点(每个点例举一两个):
1、上传功能:
上传中断,程序是否有判断上传是否成功
上传与服务器端语言(jsp/asp/php)一样扩展名的文件或 exe 等可执行文件后,确认在服务器端是否可直接运行
2、注册功能/登陆功能:
请求是否安全传输
重复注册/登陆
关键 cookie 是否 httponly
会话固定:利用 session 的不变机制,获取他人认证和授权,然后冒充
3 、验证码功能:
短信轰炸
验证码一次性
4、 忘记密码:通过手机号/邮箱找回
程序设计不合理,导致可以绕过短信验证码,从而进行修改(使用 burpsuite 抓包,修改响应值 true)
5 、敏感信息泄漏:数据库/日志/提示
6 、越权测试:
不登陆系统,直接输入下载文件的 URL 是否可以下载/直接输入登录后页面的 URL 是否可以访问
手动更改 URL 中的参数值能否访问没有权限访问的页面
不同用户之间 session 共享,可以非法操做对方的数据
7 、错误信息:
错误信息中释放含有 sql 语句,错误信息以及 web 服务器的绝对路径
8、 Session:
退出登陆后,点击后退按钮是否能访问之前的页面
主要归结为以下几点:(后期可以优化成一个安全测试的框架结构)
1、部署与基础结构,2、输入验证,3、身份验证,4、授权,5、配置管理,6、敏感数据,7、会话管理,8、加密,9、参数操作,10、异常管理,11、审核和日志安全,
2、结合实际情况(现有系统)发现的问题:
1、 日志/提示:在系统的初期,一般比较容易发现的问题就是在进行一些错误或者反向测试时,在页面的提示中会出现带有明显的数据库的表或者字段的打印,或者会出现一些敏感词,日志里面类似密码,卡号,身份证号没有相应的明密文转换,而这些敏感词/明密文不互转的存在,就会导致攻击者能够获取到,从而进行简单粗暴的攻击,轻易的攻击服务器或者数据库,这就会危害到整个系统!
2 、重复性:大部分的 web 网站都会有注册功能,而类似我们负责支付这块也都会有开户,就注册跟开户,基本上需求上都会有唯一性的校验,在前端就会进行拦截,但如果使用 jmter 进行参数以及参数值的新增,有可能新增成功,就会导致页面系统里面会出现相同数据,可能导致整个功能的出错
3 、次数限制:类似发单,登录或者短信,如果没有进行相应的限制,如短信,没有进行限制次数,攻击者就会通过短信轰炸,攻击系统,导致系统瘫痪,其他客户就会使用不了该系统
4、 越权测试:(基本上大部分系统都没有明确的写出越权方面的需求)一个 web 系统,一般地址栏都会有参数的带入,如:用户号,订单号或者是其他的一些参数,而在这个基础上一个系统都会有很多用户,或者很多等级,如:A 大于 B 大于 C,那我使用 C 用户进行登录,查看 C 用户所属的订单,在地址栏中会有订单号的参数带入,如果系统没有进行相应的限制,此时 C 用户就可以修改订单号从而可以看到 B 乃至 A 用户的数据,这就可能导致数据的泄露,再者,如果可以修改用户的用户号,没有做处理,这样就可以对所有数据进行操作,整个系统就乱了,影响很大
5 、SQL 注入/XSS 攻击:主要是输入框的校验/拦截以及是否转义,如果没有系统没有对输入的内容进行处理,那攻击者就可以输入一段 SQL 语句,或者一段代码,在后台进入到相应的功能,就会导致整个功能是错乱的,其他正常用户所提交的数据也查看操作不了,或者提交的代码是死循环(">
),就会关闭不掉,所以这点是非常重要的
基本上上述的五点都是在测试中,系统真实存在,发生的问题,还有其他问题就不一一例举了,其中越权跟 SQL 注入以及 XSS 攻击都是重中之重!
3、克服的小困难:
上面所述的都是需要人工进行手动参与,且人力操作时不会那么饱满全面,所以这是一个遇到的小问题,现在是有一个针对 web 系统进行漏洞扫描的工具:AWVS,它通过网络爬虫测试你的网站安全,检测流行安全漏洞,针对漏洞主要分为四个等级:高危、中危,低危以及优化,它会进行内外链接的安全性,文件是否存在以及传输是否安全,也包含 SQL 注入跟 XSS 攻击,输入地址,用户名密码后,进行扫描完成后会展示相应的数据:漏洞的数量,漏洞的描述,建议性的修复;扫描网站的时长,文件数据量,环境信息等,较为全面!
4、安全测试的思路跟框架:
主要是分为:①部署与基础结构,②输入验证,③/身份验证(权限验证),④敏感数据,⑤参数操作,⑥审核和日志安全;主要根据这六点来做到一个较为完整的思路
框架就是根据半手工,半自动来实现整个系统的验证
5、目前存在的问题/需要优化的:
现在针对安全是半手工,半自动化,但都不是专业级,所以还在摸索阶段,只能尽可能的去发现系统中存在的漏洞,且测试理论很难适用于安全领域;安全测试基础理论薄弱,当前测试方法缺少理论指导,也缺乏更多的技术产品工具 ,同时,安全测试需要对系统所采用的技术以及系统的架构等进行分析,这方面也是较为薄弱的环节!
本文转载自宜信技术学院网站。
原文链接:http://college.creditease.cn/detail/203
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论