熊海CMS 靶场

news2024/11/20 2:42:01

熊海CMS 靶场

0x01 前言

初步了解cms,Content Management System 内容管理系统。它是一种用于创建、编辑、管理和发布内容的软件程序或工具。内容管理系统通常用于网站、博客、企业内部系统等各种应用中,可以帮助用户管理和发布各种类型的内容,如文章、图片、视频、文件等。

进行PHP代码审计,代码审计是一种白盒测试,以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。 软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误。

image-20231109200119822

0x02 网站的基本结构

在熊海CMS 站点中,由以下几个基础目录组成:

image-20231109195832333

css : 存放样式文件

files:存放着站点的页面html文件

houtai: 存放着站点短肽管理页面html文件

images:存放着站点的图片文件

inc:存放用于重复使用的代码、函数、类或者其他需要在多个页面中引用的文件。

install: 存放网站的安装配置也买你html文件

seacmseditor:存放着扩展插件等文件

template: 存放着定义网页结构和外观的模板html文件

upload: 为上传文件夹。

index.php: 一般为网站的访问点,

0x03 初步审计

审计流程

  1. 准备阶段:确定审计的范围和目标,收集相关文档、代码和其他必要的信息。

  2. 静态代码分析:通过工具或人工的方式对源代码进行审查,识别潜在的安全漏洞、逻辑问题或者代码质量问题。

  3. 动态代码分析:利用黑盒测试方法,对应用程序进行实际测试,寻找潜在的漏洞、安全隐患和逻辑问题。

  4. 报告撰写:总结审计结果,编写详细的审计报告,包括发现的问题、风险评估、建议的修复措施等内容。

  5. 问题跟踪和验证:与开发团队合作,跟踪和验证问题的修复过程,确保问题被有效解决。

静态审计

由于漏洞一般都发生在代码功能的逻辑错误,所以审计的重点在files、houtai两个文件夹。

问题 1 文件包含
/index.php

image-20231109201424533

index.php 网页入口文件存在文件包含漏洞。

  1. 使用GET方法传入的参数,输入使用了addslashes()函数验证,但是它只能过滤\等特殊符号假站点存在其他漏洞,攻击者可以利用文件包含漏洞非常容易的利用。

    image-20231109202328697

利用条件:

php.ini 中的allow_url_fopen = On(远端资源)、allow_url_include= On(本地资源) 两个参数任意一个是开启状态。一般情况建议关闭allow_url_fopen.

攻击通过任意方式,将恶意代码侵入网站中,若开启了allow_url_fopen ,其他恶意的URL也能导致被入侵。

修复方法:

增加收入验证、使用安全的文件包含、关闭不必要的配置。

/houtai/index.php

image-20231110123639102

image-20231110122518944

webshell只能在files文件夹内,才能利用

/template/header.php

image-20231110122136212

原理和上面一样 没有对输入参数进行验证。

image-20231110122259647

问题2 SQL 注入
addslashes()函数问题

image-20231109211939408

使用了GET方法接收参数r,并用addslashes()对参数进行特殊符号过滤,可以减少SQL注入的可能,

addslashes()函数也不一定安全,在一些特殊情况下也是可以绕过。

  1. 数据库字符集是宽字节:利用宽字节的特性,使用一个超过128的16进制,放在单引号前。
  2. SQL语句是数值类型:因为数值类型无需引号闭合。
  3. 使用特殊编码:前提条件后端需要对该参数进行相对于的解码操作。
  4. 双字节编码:用多个字节表示一个字符,例如unicode。
  5. magic_quotes_gpc: 在php5.4 之前的版本 可以开启magic_quotes_gpc参数来绕过

但是在resul变量中添加的 mysql_error(),如果sql语法错误,则会在主页上显示sql错误,如果使攻击者绕过了addslashes()就很容易进行sql注入。

image-20231109212354424

/files/software.php

software.php文件中使用GET方法获取的cid参数 未使用过滤函数,但是注释了mysql_error()函数,所以这里就造成了SQL注入

使用POC进行爆破:

image-20231109212705053

永真语句:

?cid=1' and 1=1 --+

页面正常显示。

image-20231109212759141

永假语句:

?cid=1' and 1=2--+

页面图片不在显示

由此判断改页面存在SQL盲注

image-20231109213310371

使用poc

?cid=1' and ascii(substr(database(),1,1))=120--+

由此poc可以判断该数据库的名字第一个字符为x.后句也可以根据这个poc变形爆破出该数据库的更多信息。

/files/submit.php

留言板对昵称、邮箱、网站、内容都进行的html和特殊字符过滤,但是还有隐藏参数并未进行过滤,

image-20231110135259446

image-20231110135313310

image-20231110135536953

可以从请求包中发现,未过滤的cid参数进行了SQL插入的操作,也并未对其做出过滤验证措施,而且用了mysql_error 函数将SQL的错误回显到页面之上。所以此处存在SQL报错注入。

使用POC,进行报错注入测试

'%20or%20updatexml(1,concat(0x7e,(user()),0x7e),0)%20or'

image-20231110135755037

直接爆出数据库用户名

/houtai/files/editwz.php

update SQL报错注入

image-20231110185358227

未对POST参数进行过滤验证

image-20231110185526546

image-20231110185549723

/houtai/files/editsoft insert注入

123' or updatexml(1,concat(0x7e,(user()),0x7e),0) or '

image-20231110191404567

image-20231110190109751

原理同上,未对POST传入的参数做限制

/houtai/wzlist.php

存在deleteSQL注入

image-20231111110100715

点击删除使用bp抓包

image-20231111110132662

image-20231111110334262

delete参数未使用过滤验证函数。使得该参数变为用户可控,用户可以通过改参数删除任意文章。

`/houtai/files/softlist.php

存在deleteSQL注入问题

image-20231111110725351

image-20231111110756665

image-20231111110922318

与wzlist.php 页面一样。未对delete参数进行过滤验证,导致该参数用户可控。

/houtai/editcolumn

存在selectSQL注入

image-20231111111648015

使用order by 语句发现 查询了10个字段。应该使用了*通配符进行的条件查询。

image-20231111111938998

使用POC

union select 1,2,3,4,5,6,7,8,9,10--+

后并未发现明显的回显位,所以采取报错注入进行爆破。

image-20231111112139006

成功获取数据库信息

问题3 反射型XSS
/files/contact.php

image-20231109223156742

image-20231109223254184

这里使用GET方法接收了一个page的参数,虽然做了addslashes()的特殊符号过滤操作,但是对于XSS漏洞来说还是不够的,

在代码的139行 通过a标签在页面上为做任何验证直接在页面上输出了该变量

image-20231109223749999

输入POC测试:

<img src=1 onerror=alert(123)>

image-20231109224021717

在这里我使用了一个 图片标签 img ,源地址随便设一个值,在找不到源地址,使用js报错事件来触发我想执行的内容,由于该POC内没有addslashes()过滤的特殊字符,所以addslashes()形同虚设。

例如我想得到登录账户的cookie

image-20231109224734556

/files/download.php

存在反射型漏洞

image-20231109225942298

与之前contact.php 页面一样

/files/list.php

list.php 也存在反射性XSS

image-20231109231157805

image-20231109231244391

/houtai/files/wzlist

反射性xss,原理和之前一样。不在累述

image-20231111104843636

image-20231111105114076

/houtai/files/softlist

反射性xss,原理和之前一样。不在累述

image-20231111111234402

image-20231111111242968

问题4 存储型XSS
/houtai/wzlist.php XSS存储漏洞

image-20231110183944171

后台发布文章页面 标题、作者、关键字、描述都存在存储型XSS

image-20231110184207717

由于关键字、描述在主页中没有回显位,所以无法利用

image-20231110184320381

image-20231110184554423

未对GET输入参数进行过滤验证。

/houtai/files/editsoft.php

image-20231110191950622

原理与之前一样,未对POST传入的参数验证。

image-20231110192144659

问题5 任意文件下载
/files/houtai/newsoft.php

image-20231111114011653

如果获取到后台权限可以通过editsoft的发布下载功能中设置该服务器的任意文件路径,可以通过前端页面进行下载。导致服务器的敏感文件泄露

image-20231111114236206

image-20231111114253350

image-20231111114316574

image-20231111114817398

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1195936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Clickhouse学习笔记(5)—— ClickHouse 副本

Data Replication | ClickHouse Docs 副本的目的主要是保障数据的高可用性&#xff0c;即使一台 ClickHouse 节点宕机&#xff0c;那么也可以从其他服务器获得相同的数据 注意&#xff1a; clickhouse副本机制的实现要基于zookeeperclickhouse的副本机制只适用于MergeTree f…

一起看看StatusBarManagerService(一)

写在前面 工作需要涉及到这部分代码&#xff0c;但是我对此了解很少&#xff1b;边学边总结&#xff0c;把这部分逻辑和涉及到的知识点弄明白。该系列不确定几篇&#xff0c;随缘。 本篇主要介绍StatusBarManagerService与systemui之间的关联。 了解StatusBarManagerService …

[Android]_[初级]_[配置gradle的环境变量设置安装位置]

场景 在开发Android项目的时候, gradle是官方指定的构建工具。不同项目通过wrapper指定不同版本的gradle。随着项目越来越多&#xff0c;使用的gradle版本也增多&#xff0c;导致它以来的各种库也增加&#xff0c;系统盘空间不足&#xff0c;怎么解决&#xff1f; 说明 grad…

pyqt环境搭建

创建虚拟环境 # 用管理员身份运行 conda create --prefixE:\Python\envs\pyqt5stu python3.6 # 激活虚拟环境 conda activate E:\Python\envs\pyqt5stu # 退出虚拟环境 conda deactivate安装包 pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5-tools…

asp.net学生宿舍管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net 学生宿舍管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言 开发 asp.net学生宿舍管理系统1 应用技…

CV计算机视觉每日开源代码Paper with code速览-2023.11.8

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构】&#xff08;WACV2024&#xff09;SBCFo…

Spring Cloud学习(四)【Nacos配置管理】

文章目录 统一配置管理微服务配置拉取配置热更新多环境配置共享Nacos 集群搭建Nacos集群搭建1.集群结构图2.搭建集群2.1.初始化数据库2.2.下载nacos2.3.配置Nacos2.4.启动2.5.nginx反向代理2.6.优化 统一配置管理 Nacos 可以实现注册中心和配置管理服务 在Nacos中添加配置信息…

字符串的模式匹配(朴素模式匹配算法,KMP算法)

目录 1.朴素模式匹配算法1.定义2.算法实现3.代码实现 2.KMP算法1.优化思路2.next数组3.代码实现 3.求next数组4.KMP算法优化1.next数组的优化2.求nextval数组 1.朴素模式匹配算法 子串&#xff1a;主串的一部分&#xff0c;一定存在。 模式串&#xff1a;不一定能在主串中找到。…

【算法与数据结构】93、LeetCode复原 IP 地址

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;参照【算法与数据结构】131、LeetCode分割回文串的思路&#xff0c;需要将IP字符串进行分割&#xff0…

js 实现数字滚动效果,从 0 加到目标值,并且重复执行

js 实现数字滚动效果,从 0 加到目标值,并且重复执行 实现效果 js 方法 方法接收的参数 为目标值 const showNumberref(1999) const animateNumber (target: number) > {let current 0const increment (target - current) / (2000 / 16) // 计算每次递增的值&#xff0c…

华硕荣获“EPEAT Climate+ Champion”永续先驱称号

华硕持续深耕永续理念&#xff0c;努力提供低碳排放、高效能产品&#xff0c;并被全球电子委员会授予“EPEAT Climate Champion”称号。这一荣誉再次表明了华硕在永续管理方面的承诺&#xff0c;并凸显了华硕在追求永续发展上的决心。 华硕通过设立“科学基础减碳目标”、“再生…

lv11 嵌入式开发 ARM体系结构理论基础(异常、微架构)4

1 异常概念 处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生 这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件 异常事件处理完成之后再返回到被异常打断的点继续执行程序 2 异常处理机制 不同的处理器对异常的处理的流程大体相似&#xff0c…

一种ADC采样算法,中位值平均滤波+递推平均滤波

前言 在实际AD采集场景中&#xff0c;会出现周期性变化和偶然脉冲波动干扰对AD采集的影响 这里使用中位值平均滤波递推平均滤波的结合 参考前人写好的代码框架&#xff0c;也参考博主GuYH_下面这篇博客&#xff0c;在此基础上稍作修改&#xff0c;写出这篇博客&#xff0c;能…

基于超宽带技术的人员定位系统源码,spring boot+ vue+ mysql定位系统源码

​UWB定位技术源码 超宽带技术的人员定位系统源码 UWB人员定位系统是一种基于超宽带技术的人员定位系统&#xff0c;它通过发送和接收超短脉冲信号&#xff0c;在测距方面可以达到微米级精度。这种系统通常需要具备高精度的定位能力&#xff0c;通常需要达到微米级别&#xff0…

ceph-deploy bclinux aarch64 ceph 14.2.10

ssh-copy-id&#xff0c;部署机免密登录其他三台主机 所有机器硬盘配置参考如下&#xff0c;计划采用vdb作为ceph数据盘 下载ceph-deploy pip install ceph-deploy 免密登录设置主机名 hostnamectl --static set-hostname ceph-0 .. 3 配置hosts 172.17.163.105 ceph-0 172.…

局部路由守卫component守卫

局部路由守卫component守卫 component守卫&#xff08;beforeRouteEnter、beforeRouteLeave&#xff09; 代码位置&#xff1a;在路由组件中&#xff0c;代码是写在component当中的&#xff08;XXX.vue&#xff09;beforeRouteEnter、beforeRouteLeave都有三个参数&#xff1…

python Flask框架,调用MobileNetV2图像分类模型,实现前端上传图像分类

python Flask框架&#xff0c;调用MobileNetV2图像分类模型&#xff0c;实现前端上传图像分类 今天博主介绍一个图像分类的小项目 基于flask 和mobileNetV2模型的前端图像分类项目 环境配置如下&#xff1a; python版本3.7.6 安装库的版本如下&#xff1a; tensorflow 2.11.…

单挑特斯拉,华为智选车迈入第二阶段

文丨刘俊宏 编丨王一粟 华为智选车的节奏越来越快。 11月9日&#xff0c;华为跟奇瑞打造的首款C级纯电轿车智界S7发布&#xff0c;预售价为25.8万起。 在发布会上&#xff0c;华为常务董事、终端BG CEO、智能汽车解决方案BU董事长余承东采取手机以往最惯用的对标营销手法&a…

蓝桥杯算法心得——拼数(排列型回溯dfs)

大家好&#xff0c;我是晴天学长&#xff0c;排列型的dfs&#xff0c;在一些需要暴搜的题中很中很重要&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .拼数 2) .算法思路 超级递归 1.遍历数组&#…

想要和猫妹一起学Python吗?快进群吧

这是一篇2024年猫妹学Python新同学召集令&#xff0c;感兴趣的朋友可以看下。 初始Python 猫爸第一次被Python惊艳&#xff0c;是几年前的一个风格迁移程序。 国外某大学的一篇博士论文&#xff0c;为风格迁移提供了理论支撑。 下载到模型之后&#xff0c;就可以用简单的Py…