Web框架下安全漏洞的测试反思
此文已由作者王婷英授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
在平时的测试中,一般情况下,我们都是比较关注功能业务测试,以及对应的接口测试,很少去关注对应的业务设计上存在的安全漏洞测试分析。随着行业对安全的要求越来越高,同时我们电商是经常在网络上发生交易操作的网站,更是要关注安全测试相关的测试场景的考虑。
之所以来编写这篇web的里的安全测试的文章,主要是在平时的测试过程中,发现了我们的考拉网站上存在一些安全性的漏洞。一部分的安全漏洞不会公司带来资损,但是还有一部分的安全性漏洞会对公司造成一定的资损,这样子的安全性的漏洞更应该被重视,那么安全性的测试也更应该被重视起来。
简单罗列目前发现的安全性问题:
用户购买会员的金额可以通过修改请求里的金额,进行购买--------根本原因:后端的代码没有将拿到的用户的金额和实际的金额进行对比,再去发出下一步的支付流程。
对订单进行评论的获取考拉豆的时候,可以通过变更URL上的orderID来进行变更,从而将别人的订单进行评价,而获取别人的考拉豆---根本原因:后端没有对订单的所属进行判断,只是核对该订单是否存在
下面详细的说明几种常见的漏洞:
1、通过修改请求里的Response参数
实名认证这里的请求:https://m.kaola.com/member/activity/valid/nameAuth.html,只需将请求里Response里的code修改为:unknown200,以及将success的值修改为true,然后将这个请求发出去之后,我们的刷子用户就可以成功的绕过这个围墙了,去购买参加我们的试用会员了,从而可以享受我们的7天的会员96折的价格
2、修改URL上的参数,操作不属于自己的订单信息(越权)
这个是通过修改URL上的订单参数,可以查看别人的订单信息,以及物流状况,以及对订单进行申请售后等操作
这个也是对订单进行变更,对别人的订单进行评价,来收获别人的订单的返考拉豆
通过修改URL链接上的参数来进行一些非对应账号的信息的查看和操作,从安全的角度来看是没有进行隐私保护操作。甚至会带来一些客户投诉,更加严重的是,用户对我们的产品失去信任,不再使用。这些不应该是是开发人员去思考的,更应该是QA在平时的需求测试中进行关注的地方。
有人说,修改订单号,怎么可能,别人怎么知道我们的订单号生成的规律。其实我们认真的分析我们的订单号,还是可以找到一定的规律
如:gid=201712102237GORDER36432705---在GORDER前面的是我们的订单生成的年月日,后面是8位流水号,其实真的要去操作,还是在一定程度上可以修改URL的参数。
3、本应该是post请求,硬是设计成get请求
为加强QA对功能业务重视的情况下,同时也要在平时的业务测试的过程中重视安全性相关方面的测试,为了更好的在测试过程中养成敏锐的观察能力。首先web需要了解下,Web的相关节点,浏览器、http请求、中间件、数据库等之间的关系。
在数据的传输中,我们可以把 web 简单的分为几个层次:
浏览器:浏览器即客户端,提供客户端和服务器端的数据信息交互。
http:客户端与web服务器进行交互时就存在web请求,这种请求都基于统一的应用层协议——HTTP协议来交互数据。http属于轻量级协议,无需连接,提供了对通信错误的容错性(常见的3次握手)。
中间件:中间件是位于平台(硬件和操作系统)和应用之间的通用服务
Server容器:Server容器负责解析用户请求和脚本语言,类似的有Tomcat,JBoss等。我们访问网页看到是web容器处理后的内容。
数据库:动态页面可提供交互式的信息查询服务,主要依赖于web数据库的实现,对外提供包含表单的Web页面作为访问接口,查询结果也以包含数据列表的Web页面形式返回给用户。
那么针对上面的一些问题,我们应该怎么去避免呢?如上面的越权的信息,实际上是没有对当前的cookie进行验证,以致可以通过修改URL上的参数就能操作别人的订单信息。
对敏感数据存在的接口和页面做cookie,ssid,token或者其它验证,如下图所示:
其实,还有很多安全方面的测试,如cookie里不应该暴露比较敏感的信息等等。
结束语:
这些安全的漏洞的根本的来源是开发设计逻辑存在缺陷,于是给我们的黑客存在可利用的空间。在平常的业务测试中,我们不可能要求开发设计逻辑能面面俱到,也不可能发现所有的逻辑缺陷,这些缺陷给我们带来的伤害其实是巨大的。如用户的验证码被爆破、会员手机号被遍历、抽奖次数本地被修改、跳过手机短信验证修改他人密码、登陆等接口返回用户密码等信息、签到逻辑不严,导致薅羊毛等等问题,都会给我们的产品打上一个不好的标签。因此,功能QA不仅子在乎开发的需求是否满足交互稿的同时,而且也要考虑下各种安全的场景测试,在一定程度上规避安全漏洞被不法用户使用,造成不堪后果的损失。
网易云免费体验馆,0成本体验20+款云产品!
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 Python3下基于bs4和sqlalchemy的爬虫实现
Web框架下安全漏洞的测试反思的更多相关文章
- 蜗牛历险记(二) Web框架(下)
Web框架第三篇--缓存篇 缓存的优劣很大程度上决定了框架的效率,一个有节操的缓存它应该是高效的,利用率高的,具备更多扩展功能的. 一.介绍之前 计算机各个硬件的运行效率是不一样的,CPU>&g ...
- 在Centos下对高并发web框架Tornado的性能进行测试
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_89 在之前的一篇文章中,我们在1g1核的惨淡硬件环境下,对 uwsgi + django 和 gunicorn+ django 的 ...
- TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹
TechEmpower 第19轮编程语言框架性能排行榜2020年5月28日正式发布,详见官方博客:https://www.techempower.com/blog/2020/05/28/framewo ...
- 应用安全 - Web框架 - Apache Solr - 漏洞汇总
CVE-2019-12409 Date: // 类型: 配置不当导致远程代码执行 前置条件: 影响范围: Solr and for Linux Solr下载:https://www.apache.or ...
- 应用安全 - Web框架 - 数据库管理 - phpMyAdmin - 漏洞汇总
CVE-2019-18622 Date: 2019.10.28 类型: SQL injection in Designer feature 影响范围: phpMyAdmin versions prio ...
- 应用安全 - Web框架 - Apache Flink - 漏洞汇总
SSV ID:SSV-98101 -- 类型: 文件上传导致远程代码执行 flink下载: https://www.apache.org/dyn/closer.lua/flink/flink-1. ...
- TechEmpower 21轮Web框架 性能评测 -- C# 的性能 和 Rust、C++并驾齐驱
自从2021年2月第20轮公布的测试以后,一年半后 的2022年7月19日 发布了 TechEmpower 21轮测试报告:Round 21 results - TechEmpower Framewo ...
- web端常见安全漏洞测试结果分析-- appscan
基于appscan测试结果分析: 一.XSS跨站脚本 指的是攻击者往Web页面里插入恶意html代码,通常是JavaScript编写的恶意代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被 ...
- Tomcat服务器本地的搭建,以及在 IDEA软件下的配置,以及项目的测试运行(基于supermvc框架下的web)
一.声明 使用了基于springmvc的supermvc的web框架.实习公司的框架. 二.tomact的下载与安装 1选择适合自己电脑配置的jdk和jre版本(截图来自tomcat的官方网站http ...
随机推荐
- Secrets CodeForces - 333A
Secrets CodeForces - 333A 题意:这个世界上只有这样面值的硬币:1,3,9,27,81,...有一个商人,某一天遇到了一个顾客,他购买了价值n的商品,发现用自己的硬币无法付给商 ...
- 贪心 HDOJ 5090 Game with Pearls
题目传送门 /* 题意:给n, k,然后允许给某一个数加上k的正整数倍,当然可以不加, 问你是否可以把这n个数变成1,2,3,...,n, 可以就输出Jerry, 否则输出Tom. 贪心:保存可能变成 ...
- YII2修改backend模块报错An Error occurred while handling another error: exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "site/error".' in E:\project\demo\vendor\yiisoft
报错内容: 原因:没有修改common/config/bootstrap.php里的别名 修改后:
- XON/OFF
#define XON 0x11#define XOFF 0x13查找ASCII码表,这两个对应的是DC1(设备控制1)和DC3(设备控制3) X/ON和X/OFF为开启和关闭发送器的信号.X /ON ...
- Spring Cloud Config 使用Bus的动态配置中心
server端配置 POM文件 <dependency> <groupId>org.springframework.boot</groupId> <artif ...
- Vue 2.0入门基础知识之内部指令
1.Vue.js介绍 当前前端三大主流框架:Angular.React.Vue.React前段时间由于许可证风波,使得Vue的热度蹭蹭地上升.另外,Vue友好的API文档更是一大特色.Vue.js是一 ...
- android xml中使用include标签
在一个项目中,我们可能会在xml中局部用到相同的布局,如果每次都在xml中重写这些布局,代码显得很冗余.重复的复制黏贴也很烦恼,所以,我们把这些相同的局部布局写成一个单独的xml模块,需要用到这些布局 ...
- mac下elasticsearch安装部署
下载elaticsearch集成包 优势:封装了对插件的支持,且安装方式较简单 地址:https://github.com/medcl/elasticsearch-rtf 解压到指定目录后,获取该集成 ...
- Js学习文件上传
// 文件上传 jQuery(function() { var $ = jQuery, $list = $('#thelist'), $btn = $('#ctlBtn'), state = 'pen ...
- 移动端超级好用的reset.css(只做参考哦具体以你们实际项目需求为准)
html { color: #333; /*规定主色调,依据业务场景(非必须)*/ background: #F6F6F6; /*规定主背景,依据业务场景(非必须)*/ overflow-y: aut ...