爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      PHP代码审计(一)之PHP代码审计的意义

      首页 知识中心 软件开发 文章详情页

      PHP代码审计(一)之PHP代码审计的意义

      2023-08-02 05:54:57 阅读次数:423

      php,web,网络

      PHP代码审计的意义

      什么是代码审计

      什么是代码审计?代码审计就是获取目标的源代码,这个目标可以是一个网站,也可以是一个手机app,只要我们得到了目标的源代码,我们就可以去挖掘目标系统的漏洞,代码审计是指对源代码进行检查,寻找到代码中的bug,这是一项需要多方面技能的技术,包括对编程的掌握、漏洞形成原理的理解,系统和中间件等的熟悉。代码审计是企业安全运营人员及安全从业者必备的基础能力,代码审计在很多场景中都需要用到,比如企业安全运营、渗透测试、漏洞研究等

      黑盒测试与白盒测试的区别

      在代码审计中,黑盒测试和白盒测试的主要区别就在于是否可以拿到源代码,黑盒测试是拿不到源代码的,白盒测试是可以拿到源代码的

      是否应该掌握代码审计

      渗透测试人员掌握代码审计是非常重要的,因为我们在渗透测试的过程中经常需要针对目标环境的payload进行调试。另外,如果通过目录扫描工具扫到Web目录下的一个源码备份包,通常攻击者都会利用源码包找寻一些配置文件或者敏感信息,因为里面有数据库、API等一类的配置。对于掌握和没掌握代码审计的人来说,结果完全不一样、对于没掌握代码审计的人来说,可能就止步于此,而对于掌握了代码审计的人,他可以对源码包进行安全审计,发现网站的代码里面存在的漏洞,然后利用挖掘的漏洞进行渗透,总而言之,代码审计是渗透测试必不可少的一部分

      编程能力的要求

      代码审计对编程语言的基础有一定的要求,至少要能看的懂代码,能够理解代码是什么意思还有代码的逻辑,即使在代码审计中碰到一些你没见过的函数,也是可以直接上百度去查的,所以只要初步掌握了编程语言,想学习PHP代码审计应该都不是什么问题

      PHP代码审计流程

      首先做代码审计第一种是通读全文法,通读全文法作为最麻烦的方法也是最全面的审计方法,特别是大型的项目,通读全文也是了解整个项目,了解业务逻辑最好方法,了解整个项目,这样也可以挖掘到更多的中高危漏洞,然后第二种是检查敏感函数的参数,然后回溯变量,判断变量是否可控并且没有经过严格的过滤,这是一个逆向追综的过程,名为敏感函数参数回溯法,这个方法是最有效的,最常用的方法,大多数漏洞的产生是因为函数的使用不当导致的,我们可以全局搜索一些敏感函数,看看是否有未经过滤的参数传进来,就可以挖掘漏洞。第三种叫定向功能分析方法,这个方法主要是根据程序的业务逻辑来进行代码审计的,查看网站的功能,大概推测可能存在那些漏洞常见的功能漏洞,程序初始安装、文件上传、数据库备份、找回密码、验证码等。还有一种是可以先找出哪些文件在接受外部传入的参数,然后跟踪变量的传递过程,观察是否有变量传入到高危的函数中,或者在传递的过程中是否有代码逻辑的漏洞,这是一种正向追踪的方式、这样的挖掘方式比逆向挖掘的更全。

      代码审计需要使用那些软件

      我们在PHP代码审计的过程中经常需要用到以下几款软件:

      • PHPStorm
      • SQLyog
      • 虚拟机
      • Burpsuite
      • PHPStudy
      • Seay源代码审计系统

      代码审计环境搭建

      这里提供了代码审计需要用到的工具,大家可以通过以下链接下载

      链接:http
      提取码:8888

      代码审计工具

      代码审计工具是一类辅助我们做白盒测试的程序,他可以分为很多类,列如安全性审计以及代码规范性审计等。Seay源代码审计是一款针对于PHP代码安全性审计的系统,主要运行于Windows系统上,这款软件能够发现SQL注入、代码执行、命令执行、文件包含、文件上传、绕过转义防护、拒绝服务、XSS跨站、信息泄露、任意URL跳转等漏洞,基本上覆盖常见的PHP漏洞,系统配置了有以下的功能:

      • 一键审计
      • 快速函数定位
      • 自定义多窗口搜索
      • MySQL执行监控
      • 一键调试选中代码
      • 文档自动查询
      • 插件扩展
      • 代码高亮
      • 编码调试转换
      • 数据库执行监控

      主界面如图所示:

      PHP代码审计(一)之PHP代码审计的意义

      php核心配置详解

      代码在不同的环境下执行的结果也会大有不同,可能就因为一个配置问题,导致一个非常高危漏洞能够利用,也可能你已经找到的一个漏洞就因为你的配置的问题,导致你无法成功构造漏洞利用的代码。在PHP中,不同的版本中配置的指令也有不一样的地方,因此我们在代码审计之前需要非常熟悉PHP各个版本中配置文件的核心指令,才能更高效的挖掘漏洞

      以下只列出会影响PHP脚本安全的配置列表以及核心配置选项:

      1. register_globals(全局变量注册开关)
        该选项在设置为on的情况下,会直接吧用户GET、POST等方式提交上来的参数注册成全局变量并且初始化值为参数对应的值,使得提交参数可以直接在脚本中使用。register_globals在PHP版本小于等于4.2.3时设置为PHP_INI_ALL,中PHP5.3.0起被废弃,不推荐使用,在PHP5.4.0中移除了该选项
      2. allow_url_include(是否允许包含远程文件)
        在该配置为on的情况下,它可以直接包含远程文件,当存在include( var ) 且 var)且var)且var可控的情况下,可以直接控制$var变量来执行PHP代码。allow_url_include在PHP5.2.0后默认设置为off,配置范围是PHP_INI_ALL。与之类似的配置还有allow_url_fopen,配置是否允许打开远程文件
      3. magic_quotes_gpc(魔术引号自动过滤)
        magic_quotes_gpc在安全方面做了很大的贡献,主要他被开启,在不存在编码或者其他特殊绕过的情况下,可以使得很多漏洞无法被使用,他也是让渗透测试人员很头疼的一个东西。当该选项设置为on时,会自动在GET、POST、COOKIE变量中的单引号、双引号、反斜杠及空字符的前面加上反斜杠,但是在PHP5中并不会过滤$_SERVER变量,导致很多类似client-ip、referer一类的漏洞能够利用。在PHP5.3之后的不推荐使用magic_quotes_gpc,PHP5.4之后取消了magic_quotes_gpc。在PHP版本小于4.2.3时,配置范围是PHP_INI_ALL;在PHP版本大于4.2.3时,是PHP_INI_PERDIR
      4. magic_quotes_runtime(魔术引号自动过滤)
        magic_quotes_runtime也是自动在单引号、双引号、反斜杠及空字符的前面加上反斜杠。与magic_quotes_gpc的区别是处理的对象不一样,magic_quotes_runtime只对从数据库或者文件中获取的数据进行过滤,他的作用也很大,因为很多程序员只对外部输入的数据进行过滤,却没有想过从数据库获取的数据同样也会有特殊字符存在,所以攻击者的做法是先将攻击代码写入数据库,在程序读取、使用到被污染的数据后即可触发估计。同样magic_quotes_runtime在PHP5.4之后也被取消,配置范围是PHP_INI_ALL
      5. magic_quotes_sybase(魔术引号自动过滤)
        magic_quotes_sybase指令用于自动过滤特殊字符,当设置为on时,他会覆盖掉magic_quotes_gpc=on的配置中,即使配置了gpc=on也是没有效果的。这指令与gpc的共同点是处理的对象一致,即都对GET、POST、Cookie进行处理。而他们之间的区别在于处理的方式不同,magic_quotes_sybase仅仅是转义了空字符和吧单引号编程了双引号。于gpc相比他的配置范围是PHP_INI_ALL,在PHP5.4.0中移除了该选项
      6. safe_mode(安全模式)
        安全模式是PHP内嵌的一种安全机制,当safe_mode=on时,联动可以配置的指令有safe_mode_includea_dir、safe_mode_exec_dir、safe_mode_allowed_env_vars、safe_mode_protected_env_vars。safe_mode指令的配置范围为PHP_INI_SYSTEM,PHP5.4之后被取消
      7. open_basedir PHP可访问目录
        open_basedir指令用来现在PHP只能访问哪些目录,通常我们只需要设置Web文件目录即可,如果需要加载外部脚本,也需要吧脚本所在目录路径加入到open_basedir指令中,多个目录以分号分割。使用open_basedir需要注意的一点是,指定的现在实际上是前缀,而不是目录名。如果要将访问仅限制在指定的目录内,请用斜线结束路径名
      8. disable_functions(禁用函数)
        当需要使用指令来禁止危险函数时,切记要把dl()函数也加到禁止列表,因为攻击者可以利用dl()函数来加载自定义的PHP拓展以突破disable_functions指令的限制。disable_functions的指令限制为php_ini_only
      9. display_errors和error_reporting错误显示
        display_errors表明是否显示PHP脚本内部错误的选项,在调试PHP的时候,通常把PHP错误显示打开,但是在生产环境中,建议关闭PHP错误回显,即设置display_errors=off,以避免一些安全隐患。在设置display_errors=on时,还可以配置一个指令是error_reporting,这选项用来配置错误显示的级别,可使用数字也可以使用内置常量配置。这两个指令的配置范围都是PHP_INI_ALL

      PHP 危险函数归纳

      在PHP中,以下的函数是PHP中经常用到的危险函数:

      • include/require/include_once/require_once
      • eval/assert/preg_replace/create_function
      • system/passthru/exec/shell_exec
      • file_get_contents/fread/readfile/file/show_source
      • file_put_contents/fwrite/mkdir
      • unlink/rmdir
      • move_uploaded_file/copy/rename
      • extract/parse_str
      • simplexml_load_files/simplexal_load_string
      • unserialize
      • urldecode/base64_decode

      代码执行函数

      eval 把字符串作为PHP代码执行,很多常见的webshell都是用eval来执行具体操作的
      assert 也是把字符串作为PHP代码执行
      preg_replace 是正则表达式函数
      create_function 创建匿名函数并执行传入的命令

      包含函数

      文件包含函数主要作用为包含并运行指定文件,include/require/include_once/require_once $file,如果$file可控的情况下,我们就可以包含任意文件了,从而达到getshell的目的,包含函数也能够读取任意文件内容,这就需要用到支持的协议和封装协议和过滤器

      命令执行函数

      exec() 执行一个外部程序
      system() 执行外部程序,并且显示输出
      只要命令就能执行的参数可控系统命令

      文件操作函数

      copy:拷贝文件
      file_get_contents:将整个文件读入一个字符串
      file_put_contents:将一个字符串写入文件
      unlink:删除文件
      rmdir:删除目录

      反序列化函数

      unserialize 反序列化一个序列化的对象

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_16179749/6729799,作者:私ははいしゃ敗者です,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:SpringCloud 和springBoot基础注解及配置

      下一篇:DEVC++的C语言连接数据库mysql

      相关文章

      2025-05-14 09:51:21

      Docker大学生看了都会系列(十、Docker网络)

      docker使用Linux桥接网卡,在宿主机虚拟一个docker容器网桥(docker0),docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网络网关。

      2025-05-14 09:51:21
      docker , Docker , 容器 , 宿主机 , 模式 , 网桥 , 网络
      2025-05-12 10:19:12

      springboot学习(2)

      springboot学习(2)

      2025-05-12 10:19:12
      Java , main , springboot , web , 启动 , 方法 , 浏览器
      2025-05-06 09:19:39

      【30天玩转python】网络编程基础

      网络编程是指编写能够在网络上进行通信的程序,通过网络进行数据的发送与接收。Python 提供了许多库和工具来进行网络编程,如 socket、urllib 和 requests。

      2025-05-06 09:19:39
      TCP , 地址 , 端口 , 编程 , 网络
      2025-05-06 09:18:49

      【Linux 从基础到进阶】Docker 网络配置与调优

      Docker 提供了强大的网络功能,使得容器之间、容器与宿主机、容器与外部网络之间的通信变得高效而灵活。理解和优化 Docker 网络配置对于确保容器应用的性能和可靠性至关重要。

      2025-05-06 09:18:49
      Docker , 容器 , 宿主机 , 网络
      2025-04-16 09:26:45

      Ansible学习笔记11:变量(用户定义)

      Ansible学习笔记11:变量(用户定义)

      2025-04-16 09:26:45
      group , web , 变量 , 文件 , 目录
      2025-04-01 10:28:37

      laravel5.5简单聊聊\\Illuminate\\Foundation\\Bootstrap\\RegisterProviders::class做了什么

      laravel5.5简单聊聊\\Illuminate\\Foundation\\Bootstrap\\RegisterProviders::class做了什么

      2025-04-01 10:28:37
      app , php , provider , 加载
      2025-04-01 10:28:25

      php脚本关于退出信号的处理 (注册信号函数) 实例pcntl_signal

      php脚本关于退出信号的处理 (注册信号函数) 实例pcntl_signal

      2025-04-01 10:28:25
      php , signal , 信号
      2025-03-31 08:57:48

      php phpexcel导文件爆500(爆内存) && 应对

      php phpexcel导文件爆500(爆内存) && 应对

      2025-03-31 08:57:48
      amp , excel , php , 内存
      2025-03-31 08:57:48

      laravel5.5 自定义defer service provider的写法

      laravel5.5 自定义defer service provider的写法

      2025-03-31 08:57:48
      php , provider , service , 文档
      2025-03-31 08:57:48

      laravel5.5 Call to undefined method Closure::__set_state()

      laravel5.5 Call to undefined method Closure::__set_state()

      2025-03-31 08:57:48
      php , 缓存
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5235924

      查看更多

      最新文章

      springboot学习(2)

      2025-05-12 10:19:12

      【30天玩转python】网络编程基础

      2025-05-06 09:19:39

      php 实现批量的下载pdf (使用filedownload)

      2025-03-28 07:42:50

      初识aurora

      2025-03-27 09:41:50

      PHP代码审计方法与套路

      2025-03-18 10:01:12

      【附源码】如何用C语言做一个刷弹幕的工具?

      2025-03-06 09:16:11

      查看更多

      热门文章

      Linux实用命令authconfig和authconfig-tui(备忘)

      2023-03-16 07:49:58

      ActiveRecord语言实现PHP、Python、Node.js

      2023-02-20 07:08:36

      ThinkPHP6.0处理前端请求跨域问题AllowCrossDomain

      2022-11-14 02:56:39

      WEB入门之十一 JS面向对象

      2022-11-22 03:00:53

      ThinkPHP6获取器没有触发

      2023-02-20 10:26:30

      Linux命令之测试网络连通状态ping

      2024-07-01 01:32:44

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      php如何互换一个数组的首尾元素 中间不变 首尾互换

      PHP 简单案例[6]

      白话讲解微服务注册发现及负载均衡

      php 实现批量的下载pdf (使用filedownload)

      03_PHP基础——变量概念及使用

      结合参数接收响应转换原理讲解SpringBoot常用注解

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号