移动端APP漏洞渗透测试安全检测实施方案

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 许多客户在网站,以及APP上线的同时,都会提前的对网站进行全面的渗透测试以及安全检测,提前检测出存在的网站漏洞,以免后期网站发展过程中出现重大的经济损失,前段时间有客户找到我们做渗透测试服务,在此我们将把对客户的整个渗透测试过程以及安全测试,发现的漏洞都记录下来,分享给大家,也希望大家更深的去了解渗透测试。

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

在对客户的网站进行服务的同时,我们首先要了解分析数据包以及网站的各项功能,有助于我们在渗透测试中发现漏洞,修复漏洞,综合客户网站的架构,规模,以及数据库类型,使用的服务器系统,是windows还是linux,前期都要收集信息,做到知彼知己百战不殆。只有真正的了解了网站,才能一层一层的找出漏洞所在。网站使用的是php语言开发,采用是mysql数据库,客户服务器用的是linux centos系统,用phpstudy一键环境搭建,PHP的版本是5.5,mysql数据库版本是5.6.客户网站是一个平台,采用会员登录,功能基本都是一些交互性的,会员资料修改,银行卡添加,充值与提现,在线反馈等等。
6
下面开始我们的整个渗透测试过程,首先客户授权我们进行网站安全测试,我们才能放开手的去干,首先检测的是网站是否存在SQL注入漏洞,我们SINE安全在检测网站是否有sql注入的时候都会配合查看mysql数据库的日志来查询我们提交的SQL语句是否成功的执行,那么很多人会问该如何开启数据库的日志,如何查看呢?首先连接linux服务器的SSH端口,利用root的账号密码进服务器,打开mysql的配置文件mysqld.cnf编辑general_log_file=(log日志的地址),general_log=1,在服务器里输入tail -f (log地址),来查看实时的数据库语句执行日志。当我们SINE安全技术在测试SQL注入漏洞的时候,就会实时的看到是否有恶意的SQL语句执行成功,如果有那么数据库日志就会出现错误提示,在渗透测试中是很方便的,也更利于查找漏洞。
1

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

2

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

3

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

5

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

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
Java Android开发
Rockchip系列之CAN APP测试应用实现(4)
Rockchip系列之CAN APP测试应用实现(4)
19 1
|
24天前
|
监控 安全 数据可视化
java基于微服务的智慧工地管理云平台SaaS源码 数据大屏端 APP移动端
围绕施工现场人、机、料、法、环、各个环节,“智慧工地”将传统建筑施工与大数据物联网无缝结合集成多个智慧应用子系统,施工数据云端整合分析,提供专业、先进、安全的智慧工地解决方案。
31 1
|
1月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
29 5
|
14天前
|
XML 数据格式 Python
App测试中,强制等待和隐式等待谁更强?
本文介绍了在自动化脚本中添加等待以确保与应用程序同步的重要性。由于应用响应时间的不确定性,适当等待能防止脚本在操作未完成前继续执行,提高测试稳定性。等待包括强制等待(如`time.sleep()`)、隐式等待(全局设置查找元素的等待时间)和显式等待(根据预期条件等待)。示例代码展示了如何在Python的Appium测试中应用这些等待策略,以优化脚本的可靠性和与应用的同步。
24 0
|
15天前
|
测试技术 Python
App自动化测试中,如何更好地处理弹窗?
在App自动化测试中,处理弹窗异常是保证测试稳定性和可靠性的重要环节。当遇到广告弹窗、升级提示等不定时出现的UI元素时,可以采用黑名单处理方法,如上述Python代码示例,通过尝试点击黑名单中的元素来避免干扰。同时,利用异常处理装饰器可以增强函数功能,保持代码整洁,当异常发生时记录日志、截图并保存页面源代码,便于问题排查。这两种策略能有效提升测试的效率和质量。
7 0
|
2月前
|
XML 测试技术 数据格式
解决 App 自动化测试的常见痛点
在App自动化测试中,常见挑战包括启动加载慢和弹框干扰。为处理弹框,可以创建一个黑名单列表,遍历并点击消除。使用`handleAlertByPageSource()`方法结合`getPageSource()`判断弹框元素在当前页面的存在性,提高效率。对于首页加载延迟,使用显示等待特定元素如`user_profile_container`,但需注意弹框可能阻止元素定位。因此,结合PageSource判断首页元素和弹框,确保加载完成判断的准确性。通过这样的优化,能更有效地处理自动化测试中的中断问题。
23 1
|
2月前
|
测试技术 Android开发 索引
XPath定位如何在App自动化测试中大显神威
本文介绍了如何在Appium中使用XPath进行自动化App测试。通过淘宝App实例,展示了XPath在定位元素上的应用,包括基础定位(如通过text、resource-id、class和content-desc属性),contains模糊定位,组合定位以及层级定位(如父、子、兄弟和祖元素定位)。XPath的灵活性和强大功能使得在Appium中高效地定位元素成为可能,从而提升移动应用的测试效率。
16 0
|
2月前
|
监控 安全 Shell
深入探究App压力测试的关键要点:从零开始学习Monkey
Monkey是Google的自动化测试工具,用于模拟用户随机事件以测试应用的稳定性和压力。它可以在模拟器或设备上运行,通过随机点击发现潜在问题。
29 1
|
2月前
|
测试技术 Android开发
快速上手App自动化测试利器,Toast原理解析及操作实例
`Toast`是Android中的轻量级通知,短暂显示在屏幕任意位置,1-2秒后自动消失,不获取焦点且不可点击。Appium通过uiautomator2在控件树中处理Toast。在测试中,可设置隐式等待,利用XPath或Accessibility ID定位Toast元素进行检测和验证。示例代码展示了如何初始化driver,点击触发Toast,以及如何定位并读取Toast文本。
25 3
|
2月前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
正如优秀的软件设计一样,uni-app把一些移动端常用的功能做成了独立的服务或者插件,我们在使用的时候只需要选择使用即可。但是在使用这些服务或者插件时一定要区分其提供的各种服务和插件的使用场景,例如其提供的【uni-starter快速开发项目模版】几乎集成了移动端所需的所有基础功能,使用非常方便,但是其许可协议只允许对接其uniCloud的JS开发服务端,不允许对接自己的php、java等其他后台系统。
153 2

热门文章

最新文章