php代码审计学习-baijiacms v4

article/2025/10/9 20:47:06

php代码审计学习(baijiacms v4代码审计-system任意命令执行)

文章目录

  • 前言
  • 一、危险函数查找
  • 二、访问测试
  • 三、 构造 payload,触发漏洞
  • 总结


前言

最近及将来一段时间都会利用空闲的时间学习PHP代码审计
记录代码审计学习过程,最近在公众号上看到一篇baijiacms的代码审计分享,因此在没看具体审计内容流程的情况下,先自己学着审计一波。


一、危险函数查找

  1. 使用Seay审计工具进行自动审计发现危险函数 system
    在这里插入图片描述2. 转到system 函数所在的 includes\baijiacms\common.inc.php 文件,可以看到system函数在file_save函数中,进一步查看哪里调用有file_save函数
    在这里插入图片描述查看file_save函数调用
    在这里插入图片描述发现\system\weixin\class\web\setting.php 调用了file_save函数,进行跟进调用处
    在这里插入图片描述 system\weixin\class\web\setting.php 代码内容,从代码来看是一个文件上传类似的功能点
    在这里插入图片描述

二、访问测试

根据\system\weixin\class\web\setting.php文件所在路径拼接url路由。
拼接路由url,跳到该功能点,测试
在这里插入图片描述在file_save函数进行断点调试查看代码执行流程,f7跟进

在这里插入图片描述
在这里插入图片描述到此,发现 需要 $setting[‘image_compress_openscale’] 的值为真才可以进到system危险函数执行命令。

在这里插入图片描述由于image_compress_openscale值默认为0,想办法看看image_compress_openscale的值可不可以设置,查看全局image_compress_openscale是不是可以赋值的。

全局搜索 image_compress_openscale 赋值
在这里插入图片描述跟到image_compress_openscale 赋值的 netattach.php文件
所在路径 system\manager\class\web\netattach.php
在这里插入图片描述根据文件拼接url路由,访问功能点,该功能点就是开启图片压缩比例功能赋值image_compress_openscale为1,开启之后重新登录后台
在这里插入图片描述

三、 构造 payload,触发漏洞

开启image_compress_openscale之后,重新进行断点调试,手动拼接一下system函数执行内容:
system(‘convert-quality 80 C:/phpstudy_pro/WWW/baijiacms4.4/test1.txt’);
在这里插入图片描述正常流程 :执行完后会在C:/phpstudy_pro/WWW/baijiacms4.4/ 目录下生成一个 test1.txt文件
在这里插入图片描述

payload 构造:
分析:system()函数执行内容,在windows执行多条可以 类型管道符可以使用 符号  “|” 或者 “&”
windows文件命名规则:不可以包含以下字符,如果包含以下字符则创建文件会失败
\/:*?"<>|

在这里插入图片描述
在这里插入图片描述在此,windows执行多条命令可以使用&符号,windows文件创建,文件名中也可以包含&符号

 构造文件名执行whoami: test1&whoami&.txt  
system('convert-quality 80 C:/phpstudy_pro/WWW/baijiacms4.4/test1&whoami&.txt');

达到任意命令执行

在这里插入图片描述

总结

新手审计,我太拉了


http://chatgpt.dhexx.cn/article/g93kZbGp.shtml

相关文章

PHP代码审计之基础篇

最近在学PHP代码审计&#xff0c;那就将学习的笔记都整理一遍吧~ 前期准备&#xff1a; 当然&#xff0c;最基本的前提是至少大致学过PHP的语法。 1、安装相关软件&#xff0c;如Sublime text、 Notepad、editplus、 Seay源代码审计系统等 2、获得源码&#xff0c;可以到网上…

PHP代码审计-2

Fortify扫出来个反序列化&#xff0c;来看看吧 PHP反序列化用到的函数无非就是unserialize()、serialize()在unserialize()前会先调用__wakeup()方法&#xff0c;再看看在__wakeup()在哪&#x1f447; 来看看 load() 这个函数是干啥的&#x1f447;再来看看 getSource() 这个函…

【PHP代码审计】ThinkPHP代码审计

目录 0x001 开发方式0x002 审计流程1&#xff09;启用调试开关2&#xff09;版本查看3&#xff09;定位函数4&#xff09;测试是否存在漏洞5&#xff09;版本自身漏洞 0x001 开发方式 在审计源码时根据不同的开发方式对应不同的审计方法。 自写&#xff1a;有的站点虽然使用了…

PHP代码审计敏感函数合集

PHP代码审计 通常去代码审计的时候基本是正则的挖掘思路 通常代码审计的话&#xff0c;大部分就是通过关键的函数&#xff0c;和关键的变量去审计 ​ ​ 敏感函数 PHP操作数据库函数 mysqli_connect() //建立与MySQL数据库的连接 mysqli_connect_errno() //判断连接数…

代码审计思路之PHP代码审计

000 前言 最近也是边挖src边审计代码&#xff0c;总结下最近的php代码审计的一些思路&#xff0c;我一般按照顺序往下做&#xff0c;限于能力水平&#xff0c;可能会有不对或者欠缺的地方&#xff0c;希望各位师傅能够指导。 001 前期工作,需要的工具&#xff08;我使用的) …

PHP代码审计 -- 文件上传

工具&环境 工具&#xff1a;Seay源代码审计系统&#xff0c;文本编辑器一个 环境&#xff1a;phpstudy&#xff0c;网站源码是 zbzcms步骤 1&#xff0c; 将zbzcms网站源码放入phpstudy&#xff0c;根据网站安装引导完成网站搭建&#xff1b; 2&#xff0c;打开Seay&…

PHP代码审计

代码审计顾名思义就是检查源代码中的缺点和错误信息&#xff0c;分析并找到这些问题引发的安全漏洞&#xff0c;并提供代码修订措施和建议。 PHP代码审计 审计套路 通读全文法 (麻烦&#xff0c;但是最全面) 敏感函数参数回溯法 (最高效&#xff0c;最常用) 定向…

【PHP代码审计】——开启你的代码审计生涯

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右…

【代码审计】--- php代码审计方法

代码审计需要掌握的点 PHP编程语言的特性和基础Web前端编程基础漏洞形成原理代码审计思路不同系统、中间件之间的特性差异 代码审计思路 方法一 ---- 检查敏感函数的参数&#xff0c;然后回溯变量&#xff0c;判断变量是否可控&#xff0c;并且有没有经过严格的过滤&#xf…

DAY31:代码审计基础( PHP 篇)

DAY31&#xff1a;代码审计基础( PHP 篇) 1、PHP 代码审计基础 1.1、代码审计概述 ​ 代码审计&#xff08;Code audit&#xff09;是一种以发现程序错误&#xff0c;安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析&#xff0c;旨在…

PHP代码审计(全)

前言 官方文档&#xff1a;php.net php官方文档是非常详情&#xff0c;好用的&#xff0c;在遇到不清楚作用的函数时可以进行查询 白盒测试做代码审计最主要的知识是要去了解一个漏洞应该有哪些防御方式&#xff0c;因为大部分的漏洞都是因为修复没有做的全面&#xff0c;或…

PHP代码审计——PHP中常见的敏感函数列表

文章目录 前言一、PHP中的敏感函数——命令注入漏洞 1&#xff09;exec() 2&#xff09;system () 3&#xff09;passthru () 4&#xff09;shell_exec () 5&#xff09;popen() **/** proc_open() 二、PHP中的敏感函数——代码注入漏洞 1&#xff09;…

Idea快速选中一行的四种方式

一、鼠标连续点三下 二、end键将光标移到行尾 &#xff0c; ctrlw 选中行 三、end键将光标移到行尾 &#xff0c; shift home 选中行 四、home 键 光标移到行首、然后 点击shift end

Xcode快捷键修改 复制一行、删除一行

快速目录 Xcode快捷键修改 复制一行、删除一行0.移动选中行1.修改权限2.修改快捷键配置文件复制一行删除一行 3.设置修改Xcode快捷键4.其它注意参看 Xcode快捷键修改 复制一行、删除一行 主要是用Android Studio 开发习惯了&#xff0c;在Xcode上又没有&#xff0c;比如复制当…

竖行选中快捷键

今天选中代码时需要竖行选中&#xff0c;就回顾了一下竖行选中的快捷键 这是个很实用的快捷键。 在myeclipse中竖行选中是AltShiftA&#xff0c;进入竖行选中状态&#xff0c;按Esc退出 在idea中竖行选中的快捷键是Alt鼠标选中

idea 删除当一行或者选中行的快捷键

之前前端开发一直使用VSCode&#xff0c;常用快捷键删除一行或者当前选中的几行代码&#xff0c;使用idea的时候发现快捷键并不相同&#xff0c;查看发现idea的快捷是&#xff1a;Ctrl Y&#xff0c;比手动删除代码方便很多。 通过File->Setttings->Keymap可以查看已经…

java开发银行柜员业务绩效考核系统

导读:当今社会己进入信息社会时代,信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱(材料、能源、信息)之一。信息是管理的基础,是进行决策的的基本依据。在一个组织里,信息己作为人力、物力、财力之外的第四种能源,占有重要的地位。然而,信息是一种非…

Python模拟银行管理系统(面向对象)# 谭子

一、系统需求说明 本项目计划实现一个银行管理系统&#xff0c;包括开户、查询、取款、存款、转账、锁定、解锁和退出功能。 银行管理系统一览表 序号 模块 子模块 说明 1 菜单模块 显示菜单 验证管理员身份&#xff0c;显示功能菜单 2 开户模块 注册&#xff0c;生…

核心银行系统 之一 历史与发展

核心银行系统是银行信息系统中实现客户关系管理、产品与服务、业务流程、财务核算与管理、风险管控、辅助管理与决策等银行业务最核心功能的系统&#xff0c;是银行信息系统的基础和核心。 核心银行系统的英文名字 CORE Banking System&#xff0c;其中CORE是Centralized Onli…

银行信贷系统java_java毕业设计_springboot框架的银行信贷系统

这是一个基于java的毕业设计项目,毕设课题为springboot框架的银行信贷系统, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jspspringbootmybatis, 银行信贷系统采用mysql进行数据存储, 并基于mybatis进行了orm实体关系映射, 该银行信贷系统系统通过模块…