随着WEB应用的日益丰富,越来越多的传统企业开始使用WEB应用来开展在线业务,与此同时,黑客也将攻击技术研究的重点转到了WEB应用方面,从而加剧了WEB应用的安全风险 。
- 2021年2月,国内某知名投资机构遭遇黑客攻击,投资者个人和财务信息恐被窃取,此次数据泄露事件将导致公司该财年成本增加 。
- 2021年4月,某知名计算机厂商遭到了勒索软件攻击,勒索软件团伙REvil成功入侵宏碁的系统,并公布了企业部分的财务电子表格、银行对账单,索要的赎金达到5000万美元 。
本次将分享基于业务安全的Web测试,将分为6个板块来进行演示介绍 。分别为:基于业务的安全测试,暴力破解,篡改登录用户名信息,截包篡改手机短信/E-mail验证码、横向越权—查看与修改、删除、CSRF token 。
基于业务安全的测试举个例子:在一个电商企业的系统中,假设现有库存货品20个,单价为30元,买家现有资金100元,购1个,那么当前库存为19个,买家所剩资金为70元 。若在代码编写阶段没有控制购买数量只能大于0的话,可能会出现一种情况,客户可以在购买数量栏填写负数,如-3,就会出现剩余数量为22,客户剩余资金为160的情况 。该漏洞产生的根本原因是没有控制用户输入的购买数量必须大于0,这就是所谓的基于业务安全的漏洞 。
文章插图
在《性能之巅》一书中的阐述了这么一个观点:知识可以分为已知的已知的知识;已知的未知的知识和未知的未知的知识 。我们把已知的未知改为未知的已知 。根据业务安全测试可一一对应:
已知的已知=已知的已经出现的BUG,即该BUG已经出现过,已有应对方法,只需实施修改即可;
未知的已知=未知的已经出现的BUG,即已经出现在程序的BUG,但还没有找到,可通过脚本式测试或者探索式测试来应对;
未知的未知=未知的没有验证的模块,即未出现的BUG,但有出现的可能性 。
通过已知的bug可预知新的bug的出现,可通过探索式测试,找到并在软件开发测试之前进行以预防为主的测试 。例如要基于Python的Djiango内的Web应用框架编写代码,那么已经可知当访问数据库时,不要使用传统的Python访问数据库的方式,而要采用Djiango自带的MTV的结构去访问数据库,就可避免SQL注入的缺陷 。
文章插图
对于TDD概念,是现代软件开发中非常重要的概念之一,以测试用例为驱动的测试方法,要求开发人员,开发出符合测试用例的程序,然后通过测试用例对程序进行验收,这被叫做“测试先行的开发” 。
但并不一定都是自动化测试,可以根据脚本来进行测试,也可以基于word或者Excel格式的文本化的用例来进行测试,只需要将事先写好的测试用例供开发人员参考,可以在开发阶段进行就避免了,这样争取做到测试用例中出现的bug不出程序中发现 。
但是如何发现BUG主要看传统安全测试与基于安全的测试的区别,而传统的安全测试是以预防为主的,业务安全测试是以测试为主的 。
暴力破解暴力破解——Burp suite测试工具 。
步骤:
1、设置internet网络代理:在浏览器中设置代理经常会遇见一些bug,因此不建议使用浏览器设置 。使用控制面板设置网络代理,首先打开控制面板,点击网络和internet,再点击INTERNET选型,点击局域网设置,勾中代理服务器下的两个设置,并设置地址为127.0.0.1,端口为8888;取消自动配置下的两个设置,即可点击确认,确认后再检查一遍确认无误之后代理设置即完成 。
文章插图
2、启用Burp suite:安装Burp suite后,Burp suite需要安装JAVA环境才可以运行 需要先安装JDK1.8版本,再通过汉化启动,启动进入Burp suite 。
3、禁用拦截请求:在代理工具下的截断功能中关闭拦截请求,变为拦截禁用 。
4、修改代理监控器:在代理工具下的选项功能中改变默认端口,默认端口为8080端口,与Tomcat是冲突的,因此把监听端口改为8888,并选择指定地址 。
文章插图
5、启动被测程序:打开被测程序,并用浏览器进入该程序 。
推荐阅读
- 网站内链的作用是什么?
- 亚里士多德是哪位哲学家的弟子?亚里士多德同时代的哲学家
- 白帽黑客如何使用Sparta信息收集扫描爆破集成工具
- 白帽黑客教你Windows主机操作系统安全加固
- 黑客是如何搭建PHP渗透测试环境?
- 互联网|当反诈刑警老陈进入直播的黑暗森林
- 常见的网络攻击方式!黑客惯用的伎俩
- 黑客是如何使用Fping主机扫描工具的?
- 白帽黑客如何使用安卓木马渗透与远程控制安卓手机
- 关键词排名优化方法