PHP代码审计之环境配置

news2025/1/15 23:02:29

PHP代码审计之环境配置

  • 前言
  • 一、PHP环境配置
      • 1.1 phpstudy和phpstorm下载配置
      • 1.2 Xdebug 配置
      • 1.3 phpstudy 基本使用
      • 1.4 phpstorm基本使用
      • 1.5 RIPR下载使用
  • 二、代码审计配置文件
      • 2.5 PHP的核心配置(php.ini)
          • 1. safe_mode
          • 2. magic_quote_gpc
          • 3. magic_quote_runtime
          • 4. register_globel
          • 5. disable_functions
          • 6. allow_url_include
          • 7. allow_url_open
          • 8. open_basedir
      • 2.5 mysql的核心配置
          • 1. secure_file_priv
          • 2. basedir
          • 3. datadir


前言

php 代码审计 如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞。


一、PHP环境配置

1.1 phpstudy和phpstorm下载配置

phpstudy和phpstorm下载配置

1.2 Xdebug 配置

Xdebug 配置

1.3 phpstudy 基本使用

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

1.4 phpstorm基本使用

如下图所示,查找替换操作
在这里插入图片描述
在这里插入图片描述

1.5 RIPR下载使用

  1. RIPR下载

RIPS是一款开源的,具有较强漏洞挖掘能力的自动化代码审计工具。它使用PHP语言编写的,用于静态审计PHP代码的安全性。
RIPS下载地址

在这里插入图片描述

下载成功之后直接放到网站下面,直接访问就可以使用,我就是下载到宝塔下面,然后直接访问的,如下所示:
在这里插入图片描述

  1. RIPS使用
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

二、代码审计配置文件

2.5 PHP的核心配置(php.ini)

1. safe_mode

safe_mode=on 表示PHP开启了安全模式,开启了安全模式就说明PHP某些危险函数被禁用或者被限制使用了,比如说:文件操作函数就被限制使用了,只有对该文件有读写权限的用户才可以操作该函数:具体函数有如下

  • read()

如下函数被禁止使用:

  • shell_exec()
  • exec()
2. magic_quote_gpc

magic_quote_gpc=on表示对于可控变量,如果有’"/等字符就会被转义,等可控变量输出的时候又会被非转义,就是输入进来使用addslashes,输出去使用stripslashes()

3. magic_quote_runtime

对于文件操作,如果文件中有’"/等字符就会被转义

4. register_globel

如果 register_globel被开启,那么 G E T [ ′ n a m e ′ ] 等价于 _GET['name']等价于 GET[name]等价于name
如上的配置变量再PHP5.4后不在使用

5. disable_functions

禁用一些函数,各个函数以逗号分割,disable_functions禁用的函数可能被绕过

6. allow_url_include
7. allow_url_open

6和7变量主要和一些PHP伪协议有关

8. open_basedir

open_basedir等于PHP可以被操作的文件目录

2.5 mysql的核心配置

1. secure_file_priv

secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的,secure-file-priv在mysql.ini文件或/etc/my.cnf中,如果指定文件没有该字段,可以自行添加(phpstudy:mysql.ini文件中进行配置,宝塔:/etc/my.cnf进行配置)

  • secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
  • 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
  • 当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

如上所示,当开启了secure_file_priv后,还要有如下的配置才能够使用loadfile()和into outefile函数

  1. loadfile
  • 当前用户有读权限
  • 知道网站的绝对路径
  1. into outefile
  • 当前用户有写权限
  • 知道网站的绝对路径

想要知道当前用户的权限可以使用如下的命令

' order by 2--   查看字段数
' union all select database(),user()--   查看当前数据库和用户
注意,如下的root表示如上user()的结果
查看当前用户是否有文件读写的权限:
1' and (select File_priv from mysql.user where user='root' and host='localhost')='Y'-- 
1' and (select File_priv from mysql.user where user='root' and host='%')='Y'-- 

mysql数据库下面的user表有当前用户的权限信息,使用如上的boolean注入,就可以发现当前用户是否有读写权限

2. basedir

该参数指定了安装 MySQL 的安装路径,填写全路径可以解决相对路径所造成的问题。

3. datadir

该参数指定了 MySQL 的数据库文件放在什么路径下。数据库文件即我们常说的 MySQL data 文件。(宝塔面板只能够在这个路径使用into outefile)


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

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

相关文章

Maven学习1_将项目打包jar然后上传到GitHub、Nexus Sonatype仓库、搭建Sonatype私服

概述 主要学习记录Maven仓库相关知识,如何借助上传项目jar包到GitHub、Nexus Sonatype,,以及搭建自己的Nexus Sonatype私服,然后在Maven项目的pom文件引入使用,参考Maven官网文档:https://central.sonatype.org/publi…

【SQL应知应会】分析函数的点点滴滴(三)

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分析函数的点点滴滴 1.什么是分析函数:…

HDFS写流程源码分析(一)-客户端

HDFS 写流程源码分析 一、客户端(一)文件创建及Pipeline构建阶段(二)数据写入(三)输出流关闭 二、服务端 环境为hadoop 3.1.3 一、客户端 以下代码创建并写入文件。 public void create() throws URISynt…

计网学习记录

ps:答案可能不正确噢。 1.什么是计算机网络体系结构?什么是网络协议?协议的三要素是什么?每个要素的含义是什么? 计算机网络体系结构: 我看书上也没说清啊。。。 (概念磨人啊) 什么是计算机的…

WPF 零基础入门笔记(1):WPF静态页面,布局+样式+触发器(更新中)

文章目录 官方文档往期回顾零基础笔记项目实战(已完结) WPF项目创建为什么选net core版本 WPF 静态页面WPF 页面布局WPF样式 官方文档 往期回顾 零基础笔记 WPF 零基础入门笔记(0):WPF简介 项目实战(已…

github 代码实战pycharm

文章目录 下载代码配置环境进入环境下载数据集使用pycharm训练模型 下载代码 配置环境 conda env create -f environment.yml 进入环境 conda activate pytorch-CycleGAN-and-pix2pix 下载数据集 搜索download_pix2pix_dataset.sh然后用记事本打开,会发现有一个…

SpringBoot 疫苗接种管理系统 -计算机毕设 附源码83448

SpringBoot疫苗接种管理系统 摘 要 在目前的形势下,科技力量已成为我国的主要竞争力。而在科学技术领域,计算机的使用逐渐达到成熟,无论是从国家到企业再到家庭,计算机都发挥着其不可替代的作用,可以说计算机的可用领…

【软件架构】软件的设计图纸(用例图,类图,状态图,活动图,顺序图)

【软件架构】软件的设计图纸(用例图,类图,状态图,活动图,顺序图)_bdview的博客-CSDN博客 按图索骥---软件的设计图纸 序: 我一直以为,在软件设计中,各种图要比文档重要的多。图可以更加直接的…

RocketMQ 常见面试题(二)

broker如何处理拉取请求的? Broker处理拉取请求的具体流程如下: 客户端向Broker发送拉取请求,请求指定要拉取的主题名称和消费者组信息。 Broker首先会检查该消费者组是否已经存在,如果不存在则会创建该消费者组,并为…

Dubbox是什么,如何整合SpringBoot,有什么优势?

目录 一、Dubbox 是什么 二、Dubbox 如何整合SpringBoot 三、Dubbox 有什么优势 一、Dubbox 是什么 Dubbox是一款基于Java语言的分布式服务框架,是阿里巴巴公司开源的一款服务化治理框架,其前身为Dubbo。Dubbox是针对Dubbo进行了改进和升级&#xff…

akima 插值拟合算法 Python/C++/C版本

目录 前言Akima简介Akima优势 算法的代码实现python版C 版代码解析1代码解析2代码解析3 C版 实验对比 前言 鉴于“长沙等你”网站上Akima算法文章大部分要VIP观看或者下载,即使是付费也有质量不佳,浪费Money也浪费时间。 笔者根据查到的资料分享给大家。…

第5章 链路层

1、局域网的协议结构一般不包括( ) A. 数据链路层B. 网络层C. 物理层D. 介质访问控制层 逻辑链路控制子层、介质访问控制子层、物理层 2、下列关于二维奇偶校验的说法,正确的是( ) A. 可以检测和纠正双比特差错B…

NodeJS 了解和快速入门 - 实现 http 服务 操作 mysql

目录 1. 介绍 NodeJS 2. NodeJS 快速入门 3. NodeJS 实现 Httpserver 服务 4. NodeJS 操作 MySQL 数据库 1. 介绍 NodeJS 1. Node 是一个让 JavaScript 运行在服务端的开发平台, 它让 JavaScript成为与 PHP, Python, Perl, Ruby 等服务端语言平起平坐的脚本语言, 发布于 200…

尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】尚硅谷…

VUE L 表单数据过滤器 ⑨

目录 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨ V u e j s Vuejs Vuejs收集表单数据过滤器 使用 C o o k i e Cookie Cookie 影响总结 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹…

如何将Springboot项目升级成Springcloud项目

本文以nacos为例 分为以下几个步骤 1. 下载nacos软件 2. pom文件配置 3. application.yml文件配置 4. 代码调用 5. 效果展示 一 . 下载nacos软件 1.1 下载nacos-server-2.2.0-BETA这个版本 1.2 修改nacos配置文件 打开bin目录下的startup.cmd,将第26行的 set MO…

【计算机网络】第二章 物理层(下)

文章目录 2.5 信道的极限容量2.5.1 奈氏准则2.5.2 香农公式2.5.3 练习题 2.6 章节小结2.7 章节习题 2.5 信道的极限容量 2.5.1 奈氏准则 理想低通信道的最高码元传输速率 2W Baud 2W 码元 / 秒 理想带通信道的最高码元传输速率 W Baud W 码元 / 秒 W : 信道带宽&#xff08…

OZON、雅虎自养号测评如何塑造伪装度极高的测评环境

在测评领域,每个卖家和工作室都深知:创建安全可靠的网络环境对于未来发展是至关重要的。如何打造一个伪装度极高的评测环境,这一问题始终困扰着许多人。 从早期的虚拟机、模拟机、云手机、VPS等系统方案成本高且成号率低。因此,一…

php对接微信公众号扫码登录开发实录(H5微信扫描登录、服务出现故障调试、模版消息设置、扫码轮询交互)

微信公众号扫码登录开发实录 前言一、服务器配置1.微信公众号配置2.本地服务器验证程序 二、生成登录二维码1.生成微信登录二维码2.封装成便于刷新的函数 三、扫码验证和交互四、模版消息设置五、开发中遇见的问题1.该公众号提供的服务出现故障,请稍后再试&#xff…

区分 scanf和printf、fscanf和fprintf、sscanf和sprintf函数

文章目录 前言scanf和printffscanf和fprintfsscanf和sprintf总结 前言 C语言中,许多函数的函数名过于相似,使用者要是不能很好地区分这些函数,就会造成误用,最终导致代码的结果大相径庭。对于scanf和printf函数、fscanf和fprintf…