APP渗透测试安全检测方案

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 许多客户在网站,以及APP上线的同时,都会提前的对网站进行全面的渗透测试以及安全检测,提前检测出存在的网站漏洞,以免后期网站发展过程中出现重大的经济损失,前段时间有客户找到我们SINE安全公司做渗透测试服务,在此我们将把对客户的整个渗透测试过程以及安全测试,发现的漏洞都记录下来,分享给大家,也希望大家更深地去了解渗透测试。

许多客户在网站,以及APP上线的同时,都会提前的对网站进行全面的渗透测试以及安全检测,提前检测出存在的网站漏洞,以免后期网站发展过程中出现重大的经济损失,前段时间有客户找到我们SINE安全公司做渗透测试服务,在此我们将把对客户的整个渗透测试过程以及安全测试,发现的漏洞都记录下来,分享给大家,也希望大家更深地去了解渗透测试。


b8014a90f603738de6291d324c942454f919ecd0.jpeg


在对客户的网站进行服务的同时,我们首先要了解分析数据包以及网站的各项功能,有助于我们在渗透测试中发现漏洞,修复漏洞,综合客户网站的架构,规模,以及数据库类型,使用的服务器系统,是windows还是linux,前期都要收集信息,做到知彼知己百战不殆。只有真正的了解了网站,才能一层一层地找出漏洞所在。网站使用的是php语言开发,采用是mysql数据库,客户服务器用的是linux centos系统,用phpstudy一键环境搭建,PHP的版本是5.5,mysql数据库版本是5.6.客户网站是一个平台,采用会员登录,功能基本都是一些交互性的,会员资料修改,银行卡添加,充值与提现,在线反馈等等。


50da81cb39dbb6fd524a4f34abea311d962b37e6.jpeg


下面开始我们的整个渗透测试过程,首先客户授权我们进行网站安全测试,我们才能放开手的去干,首先检测的是网站是否存在SQL注入漏洞,我们SINE安全在检测网站是否有sql注入的时候都会配合查看mysql数据库的日志来查询我们提交的SQL语句是否成功的执行,那么很多人会问该如何开启数据库的日志,如何查看呢?首先连接linux服务器的SSH端口,利用root的账号密码进服务器,打开mysql的配置文件mysqld.cnf编辑general_log_file=(log日志的地址),general_log=1,在服务器里输入tail -f (log地址),来查看实时的数据库语句执行日志。当我们SINE安全技术在测试SQL注入漏洞的时候,就会实时的看到是否有恶意的SQL语句执行成功,如果有那么数据库日志就会出现错误提示,在渗透测试中是很方便的,也更利于查找漏洞。


562c11dfa9ec8a133ac9f7df55cd0b8aa1ecc016.jpeg


这里不详细的分析代码了,我们在测试中发现平台的后台管理页面存在SQL注入漏洞,当管理员登录后台的时候我们看到guanlilogin.php里POST到guanlicheck.php来对管理员的账号密码进行验证,在验证的过程中guanlicheck.php并没有对传入过来的参数进行安全校验,导致SQL注入漏洞的产生,具体代码如下


d4628535e5dde711cdc4875b0621541e9c166159.jpeg


代码里的getenv参数是获取前端用户的https头信息,通过数据比对,如果头信息大那么久返回0值然后再将IP赋值进去,通俗来讲就是没有任何的安全校验与拦截,直接将变量的IP带入到mysql据库。所以造成了SQL注入漏洞的产生。那么渗透测试中发现SQL注入漏洞就是高危漏洞,带来的危害较大,可以篡改数据,修改数据库,可以将管理员的密码重置,或者是获取所有的用户账号密码等信息。发生用户信息泄露,利用数据库的权限修改管理员密码登录后台进行下一步的提权操作,上传webshell,控制网站代码。


5ab5c9ea15ce36d3e24e5346993da082e850b156.jpeg


接下来还得检测网站的各项功能以及APP功能是否存在逻辑漏洞,越权漏洞,水平垂直等等,我们SINE安全技术详细的对每一个功能都测试很多遍,一次,两次,多次的反复进行,在用户重置密码功能这里发现有漏洞,正常功能代码设计是这样的流程,首先会判断用户的账号是否存在,以及下一步用户的手机号码是否与数据库里的手机号一致,这里简单地做了一下安全校验,但是在获取手机号验证码的时候并没有做安全校验,导致可以修改post数据包,将手机号码修改为任意手机号来获取验证码,利用验证码来修改重置密码。


adaf2edda3cc7cd9513e635798cfbb3ab90e9105.jpeg


如何修复渗透测试中的SQL注入漏洞呢?


在对前端输入过来的值进行安全判断,确认变量值是否存在,如果存在将不会覆盖,杜绝变量覆盖导致掺入恶意构造的sql注入语句代码在GET请求,以及POST请求里,过滤非法字符的输入。 '分号过滤 --过滤 %20特殊字符过滤,单引号过滤,%百分号, and过滤,tab键值等的的安全过滤。逻辑漏洞的修复办法,对密码找回功能页面进行安全校验,检查所属账号的身份是否是当前的手机号,如果不是不能发送验证码,其实就是代码功能的逻辑设计出了问题,逻辑理顺清楚了,就很容易的修复漏洞,也希望我们SINE安全分享的这次渗透测试过程能让更多的人了解渗透测试,安全防患于未然。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
安全 Java 应用服务中间件
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
|
29天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
84 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
2月前
|
前端开发 API Android开发
10 大 APP 开发方案比较
本文首发于微信公众号“前端徐徐”,深入剖析了当前最受欢迎的十种APP开发方案,包括传统的iOS和Android开发、跨平台的React Native和Flutter、现代化的CapacitorJS和PWA等,旨在帮助开发者在众多选择中找到最适合的开发路径。通过详细分析每种方案的优缺点及适用场景,文章提供了详尽的比较和实用建议,助力高效、优质的APP开发。
173 0
10 大 APP 开发方案比较
|
1月前
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
|
1月前
|
安全 大数据 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
|
1月前
|
SQL 安全 网络协议
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-2):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-2):渗透测试行业术语扫盲)作者——LJS
|
3月前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
|
2月前
|
安全 网络安全 Android开发
深度解析:利用Universal Links与Android App Links实现无缝网页至应用跳转的安全考量
【10月更文挑战第2天】在移动互联网时代,用户经常需要从网页无缝跳转到移动应用中。这种跳转不仅需要提供流畅的用户体验,还要确保安全性。本文将深入探讨如何利用Universal Links(仅限于iOS)和Android App Links技术实现这一目标,并分析其安全性。
307 0
|
2月前
|
监控 安全 Apache
构建安全的URL重定向策略:确保从Web到App平滑过渡的最佳实践
【10月更文挑战第2天】URL重定向是Web开发中常见的操作,它允许服务器根据请求的URL将用户重定向到另一个URL。然而,如果重定向过程没有得到妥善处理,可能会导致安全漏洞,如开放重定向攻击。因此,确保重定向过程的安全性至关重要。
115 0