网站漏洞扫描 某CMS代码的越权与install.php重置漏洞

简介: 客户网站前端时间被攻击,网站被劫持到了赌博网站上去,通过朋友介绍找到我们SINESAFE做网站的安全防护,我们随即对客户网站进行了全面的渗透测试,包括了网站的漏洞检测与代码安全测试,针对于发现的漏洞进行了修复,包括网站安全部署等等方面,下面我们将这一次的安全应急处理过程分享给有需要的客户。

客户网站前端时间被攻击,网站被劫持到了赌博网站上去,通过朋友介绍找到我们SINESAFE做网站的安全防护,我们随即对客户网站进行了全面的渗透测试,包括了网站的漏洞检测与代码安全测试,针对于发现的漏洞进行了修复,包括网站安全部署等等方面,下面我们将这一次的安全应急处理过程分享给有需要的客户。

b812c8fcc3cec3fdd50976443aa9063a879427f7.jpeg

首先客户网站采用的架构是PHP语言开发,mysql数据库,使用的是linux centos系统作为网站的运行环境,代码使用的是开源的某CMS系统,我们首先打包压缩了一份网站源代码到我们本地的电脑,人工对其代码进行全面的渗透测试与检测,首先我们会从网站的安装文件入手,我们查看到使用的是install.php作为网站安装的文件,一般这里会存在网站漏洞,例如:没有对其做安全验证,导致可以任意的安装网站,覆盖配置文件,甚至可能会出现表单里不做安全过滤,导致写入webshell一句话木马代码到config.php文件里。


63d0f703918fa0eccabb42cea40f81eb3c6ddb17.jpeg


经过我们SINE安全技术的人工代码安全审计,发现客户网站存在任意重装网站漏洞,漏洞文件:install.php,查看到使用的变量值为DEL_INSTALLER=1的时候才会删除安装文件,我们看到默认值=0.也就是说不会删除安装文件,我们可以访问该代码,直接执行重装操作。


7af40ad162d9f2d38addfe242b7452166127cc48.jpeg


继续检查代码是否还存在其他的漏洞,在检查到配置文件config.php代码中,有调用到cookies方面的赋值,继续追踪分析发现存在越权漏洞,管理员登录网站后,会保存cookies,但是这个cookies的构建很简单,是使用了emhash的方式,对传入的key值进行了MD5加密操作,最终cookies的构成是由账号名以及HASH值拼接构成的,那我们就可以伪造cookies,直接越权操作其他管理员账号,甚至可以以普通用户的权限,去操作网站管理员的权限。


b8014a90f603738da50fa43936836854f919ec86.jpeg


我们SINE安全工程师对后台代码进行安全审计的时候发现,存在上传漏洞,可以上传php文件,后台有个设置上传后缀名的功能,但是默认网站对添加PHP的后缀名做了过滤,会将PHP稀释掉,以及不允许,那么我们在实际的渗透测试中如何绕过呢?看到后台有数据库备份恢复的功能,那么我就可以将数据库里的后缀名改为php,再直接恢复到网站中去,直接上传PHP脚本后门也叫webshell到网站里去。


aa18972bd40735fa595eb2671cc9d7b60d2408e4.jpeg


至此客户网站的所有渗透测试以及漏洞检测已完毕,共发现3处漏洞,1个是install.php安装重置漏洞,1个是越权漏洞,1个是文件上传漏洞,针对以上3个漏洞,我们SINE安全对其做了漏洞修复,对install的变量值进行了判断,当网站安装后,自动删除install.php文件,对越权做了用户的所属权限判断,如果不是当前用户的cookies直接返回错误状态,对后台的数据库备份功能做限制,只能备份,不能恢复,恢复操作使用phpmyadmin来进行网站的数据恢复,如果您对网站的安全不是太懂的话,建议找专业的网站安全公司来处理解决,做好网站安全,才能保障用户的每一次访问。

相关文章
|
9天前
|
应用服务中间件 PHP Apache
php搭建一个简单的网站
php搭建一个简单的网站
35 1
|
18天前
|
安全 程序员 PHP
PHP中的异常处理:提升代码的健壮性
【10月更文挑战第8天】在编程的世界中,错误和异常是不可避免的。它们就像路上的坑洼,可能会让我们的程序“跌倒”。但是,如果我们能够正确地处理这些异常,就可以让我们的程序更加稳健,就像我们学会了如何在坑洼的路上稳稳地行走一样。本文将介绍PHP中的异常处理机制,以及如何使用它来提升我们的代码质量。
|
7天前
|
前端开发 PHP 数据库
原生PHP网站源码
原生PHP网站通常指的是使用纯PHP代码编写的网站,没有使用框架或者类库来简化开发流程。
15 1
|
13天前
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性和扩展性
【10月更文挑战第13天】 本文将探讨PHP中常见的设计模式及其在实际项目中的应用。通过对比传统编程方式,我们将展示设计模式如何有效地提高代码的可维护性和扩展性。无论是单例模式确保类的单一实例,还是观察者模式实现对象间的松耦合,每一种设计模式都为开发者提供了解决特定问题的最佳实践。阅读本文后,读者将能更好地理解和应用这些设计模式,从而提升PHP编程的效率和质量。
|
16天前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。
|
27天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
1月前
|
程序员 数据库连接 PHP
PHP中的异常处理:提升代码的健壮性
【9月更文挑战第30天】在编程的世界里,错误和异常是不可避免的。本文将深入探索PHP中异常处理的机制,揭示如何通过有效的异常管理来增强代码的健壮性和可靠性。我们将从基础概念出发,逐步深入到高级应用,最后通过实际代码示例来巩固理论知识。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的指导和启示。
37 6
|
18天前
|
PHP 开发者 UED
PHP中的异常处理:提升代码的健壮性
【10月更文挑战第8天】在编程世界中,错误和异常是不可避免的。它们如同路上的绊脚石,让我们的程序跌倒。但如果我们学会了如何处理这些异常,就能像学会走路的孩子一样,即使跌倒也能爬起来继续前进。本文将引导你如何在PHP中捕获并处理异常,让你的代码更加健壮,能够优雅地面对各种挑战。
|
2月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!