熊海CMS 靶场

熊海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.mfbz.cn/a/131940.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

100V耐压内置MOS ESOP8 40V输入转5V 2.1A恒压输出

100V耐压内置MOS ESOP8 40V输入转5V 2.1A恒压输出 SC9102 是一款宽电压范围降压型 DC-DC 电源管理芯片&#xff0c;内部集成使能开关控制、基准电源、误差放大器、 过热保护、限流保护、短路保护等功能&#xff0c;非常适合宽电压输入降压使用。 SC9102 零功耗使能控制&…

asp.net学院网上报销系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

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

jacoco插桩源码,看这一篇就够了

知识储备 众所周知&#xff0c;jacoco的功能主要分成两块&#xff1a; jacoco agentjacoco cli 其中jacoco agent主要用来对业务方服务进行插装&#xff0c;而cli则提供一些工具对插桩数据进行处理&#xff0c;比如dump&#xff0c;merge,report等&#xff0c;今天我们着重通…

计算机毕设 大数据工作岗位数据分析与可视化 - python flask

文章目录 0 前言1 课题背景2 实现效果3 项目实现3.1 概括 3.2 Flask实现3.3 HTML页面交互及Jinja2 4 **完整代码**5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要…

作用域插槽slot-scope

一般用于组件封装&#xff0c;将使用props传入组件的数据再次调出来或者单纯调用组件中的数据。也可用于为组件某个部分自定义样式以及为某次使用组件自定义样式。 直接拿elementui的el-table举例&#xff1a; <template><el-table v-loading"loading&q…

55. 右旋字符串(第八期模拟笔试)

55. 右旋字符串&#xff08;第八期模拟笔试&#xff09; 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;错误经验吸取 原题链接&#xff1a; 55. 右旋字符串&#xff08;第八期模拟笔试&#xff09; https://kamacoder.com/problempage…

spring6-国际化:i18n | 数据校验:Validation

文章目录 1、国际化&#xff1a;i18n1.1、i18n概述1.2、Java国际化1.3、Spring6国际化1.3.1、MessageSource接口1.3.2、使用Spring6国际化 2、数据校验&#xff1a;Validation2.1、Spring Validation概述2.2、实验一&#xff1a;通过Validator接口实现2.3、实验二&#xff1a;B…

伦敦金冬令时开市时间怎样调整

在刚刚过去的一周&#xff0c;欧美的金融市场已经正式进入了冬令时&#xff0c;这对伦敦金市场的交易时间也产生了影响。由于美国于今年11月5日(星期日&#xff09;开始正式实施冬令时间&#xff0c;所以香港的伦敦金平台的交易时间也随之而有所调整。 从今年11月6日开始&#…

体力属性在重生奇迹MU中的演变史

我相信&#xff0c;在任何一个网络游戏中都有体力这种属性&#xff0c;它本身就是血量的另一种表达&#xff0c;先天体力有优势的职业&#xff0c;往往就是后期成长较高&#xff0c;这已经是网游中一种常态&#xff0c;因为高血在PK中占据优势&#xff01;重生奇迹MU同样如此&a…

FiRa标准——MAC实现(二)

在IEEE 802.15.4z标准中&#xff0c;最关键的就是引入了STS&#xff08;加扰时间戳序列&#xff09;&#xff0c;实现了安全测距&#xff0c;大大提高了测距应用的安全性能。在FiRa的实现中&#xff0c;其密钥派生功能是非常重要的一个部分&#xff0c;本文首先对FiRa MAC中加密…

Haproxy实现七层负载均衡

目录 Haproxy概述 haproxy算法&#xff1a; Haproxy实现七层负载 ①部署nginx-server测试页面 ②(主/备)部署负载均衡器 ③部署keepalived高可用 ④增加对haproxy健康检查 ⑤测试 Haproxy概述 haproxy---主要是做负载均衡的7层&#xff0c;也可以做4层负载均衡 apache也可…

光刻掩膜版怎么制作的?

光掩膜版基本上是 IC 设计的“主模板”。掩模版有不同的尺寸。常见尺寸为 6 x 6 英寸一般的掩膜版由石英或玻璃基板组成。光掩膜版涂有不透明薄膜。更复杂的掩模版使用其他材料。 一般来说&#xff0c;术语“photo mask”用于描述与 1X 步进机或光刻系统一起使用的“主模板”。…

Xmind常用快捷键

Xmind 是什么&#xff1f; Xmind 是一款全功能的思维导图和头脑风暴软件。像大脑的瑞士军刀一般&#xff0c;助你理清思路&#xff0c;捕捉创意。 全功能&#xff1a;提供9种专业的的思维导图结构&#xff0c;丰富的模板和配色&#xff0c;精美的贴纸和插画&#xff0c;还有演…

ansible-第二天

ansible 第二天 以上学习了ping、command、shell、script模块&#xff0c;但一般不建议使用以上三个&#xff0c;因为这三个模块没有幂等性。举例如下&#xff1a; [rootcontrol ansible]# ansible test -a "mkdir /tmp/1234"[WARNING]: Consider using the file …

RabbitMQ 之 Work Queues 工作队列

目录 一、轮训分发消息 1、抽取工具类 2、启动两个工作线程 3、生产者代码 4、结果展示 二、消息应答 1、概念 2、自动应答 3、消息应答的方法 4、Multiple 的解释 5、消息自动重新入队 6、消息手动应答代码 &#xff08;1&#xff09;生产者 &#xff08;2&#…

上拉电阻与下拉电阻

文章目录 上拉电阻下拉电阻上下拉电阻作用1、稳定信号2、减少电磁干扰3、提高驱动能力 大家在玩单片机的过程中&#xff0c;一定没少听过上拉电阻和下拉电阻这组名词&#xff0c;那么到底什么是上拉电阻和下拉电阻呢&#xff1f;今天我们一起来简单了解一下 上拉电阻 上拉电阻…

企业如何解决被“薅羊毛”

随着互联网的普及和电子商务的兴起&#xff0c;越来越多的消费者选择在线购物。然而&#xff0c;一些消费者可能会利用企业的促销活动或优惠券来获取额外优惠&#xff0c;甚至恶意攻击企业的营销资金。这种行为被形象地称为“薅羊毛”。 对于企业而言&#xff0c;如何解决被“薅…

信通院发布的 “信息系统稳定性保障能力建设指南” 有点干货

刚刚看了信息系统稳定性实验室、中国信息通信研究院云计算与大数据研究所联合发布的 信息系统稳定性保障能力建设指南&#xff0c;感觉还是有点干货的。 节选如下&#xff1a; 概括的比较全 关键指标 行业案例 免费在线阅读和下载地址&#xff1a;信息系统稳定性保障能力建设指…

【Python小练手】使用PySimpleGUI和Pygame创作一个MP3播放器(附完整代码)

文章目录 前言一、来说说思路&#xff08;文心一言提供&#xff09;二、完整代码&#xff08;参考文心&#xff0c;自行修改&#xff09;总结附录 前言 闲来无事&#xff0c;做了MP3播放器练练手&#xff0c;主要是研究下PySimpleGUI的界面窗口设计。先上图&#xff0c;一睹为…

Leetcode刷题详解——电话号码的字母组合

1. 题目链接&#xff1a;17. 电话号码的字母组合 2. 题目描述&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。…
最新文章