freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PHP代码审计0day复现
2023-09-07 20:31:06

前言

本次审计用到的工具有:seay+昆仑镜进行漏洞扫描

本次审计kkcms

搭建步骤

常见的目录结构,简单了解一下其作用

  • admin 后台管理目录
  • css CSS样式表目录
  • data 系统处理数据相关目录
  • install 网页安装目录
  • images 系统图片存放目录
  • template 模板
  • system  管理目录
    1694049628_64f9255c66f3785b745fb.png!small?1694049627366

代码审计

1694085423_64f9b12f7c17e4bb52ab8.png!small?1694085421496

验证码重用

admin/cms_login.php

源码如下

<?php
require_once('../system/inc.php');
if(isset($_POST['submit'])){
if ($_SESSION['verifycode'] != $_POST['verifycode']) {
alert_href('验证码错误','cms_login.php');
}
null_back($_POST['a_name'],'请输入用户名');
null_back($_POST['a_password'],'请输入密码');
null_back($_POST['verifycode'],'请输入验证码');
$a_name = $_POST['a_name'];
$a_password = $_POST['a_password'];
$sql = 'select * from xtcms_manager where m_name = "'.$a_name.'" and m_password = "'.md5($a_password).'"';
$result = mysql_query($sql);
if(!! $row = mysql_fetch_array($result)){
setcookie('admin_name',$row['m_name']);
setcookie('admin_password',$row['m_password']);
header('location:cms_welcome.php');
}else{
alert_href('用户名或密码错误','cms_login.php');
}
}
?>

验证码的校验代码

if ($_SESSION['verifycode'] != $_POST['verifycode']) {
alert_href('验证码错误','cms_login.php');
}

不难发现这里是将$_SESSION['verifycode']与POST上传的verifycode相比较,如果不相等就会刷新跳转,重新回到登录处,此时验证码也会被更新。
我们进入前端界面看一下

1694085603_64f9b1e3a02d8ea76bdca.png!small?1694085600884

发现验证码js对应处存在文件,跟进查看一下

<?php
session_start();
$image = imagecreate

# 漏洞挖掘 # php代码审计
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录