PHP代码审计之环境配置


前言

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)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安全天天学

你的鼓励是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值