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

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

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

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

这句话什么意思呢?

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';

再来看看

首先,用post方式接收变量pw,比如接收到了:pw=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有足够高的权限,可以做任何你想做的事情。

php一句话木马调用cmd命令,一句话木马(webshell)是如何执行命令的相关推荐

  1. 如何调用cmd.exe程序,并可以传递一些命令行参数

    语句是WinExec("cmd.exe /k 命令行参数",SW_SHOW); 下面是全部解释: 启动 Windows XP 命令解释程序一个新的实例 CMD [/A | /U] ...

  2. cmd到指定目录并执行命令 mysql到bin目录并执行命令 cmd bat进入指定文件夹中并执行命令

    其实就一条命令:(保存为bat格式,注意:有两个and希腊字母 && ) cmd /k "cd /d Your ProjectPath&&Your CMD c ...

  3. linux shell两条命令,在bash shell终端中执行命令时,若要将多条命令书写在一行中,每个命令之间应用( )符号进行分隔。...

    [单选题]DE 杆的角速度的转向为: [判断题]中碳钢的含碳量在0.25%~0.6%之间 [多选题]在大众餐馆吃饭时,应该先( ),之后才能抽烟. [单选题]乳腺癌改良根治术后对患侧上肢肿胀的护理,错 ...

  4. Python_编写UDP通信编解码类、文件的上传、远程执行命令、黏包

    1.UDP通信编解码类 (1) 类 1 # ------------------UDP通信解码编码类------------------------ 2 3 from socket import * ...

  5. python批量运行cmd_python 批量ssh并执行命令

    1.安装paramiko模块 pip install paramiko 可以修改ssh连接超时时间,windows下路径:在安装路径Python\Python36\Lib\site-packages\ ...

  6. 【shell】Linux Shell远程执行命令

    目录 shell远程执行 前提条件: 对于简单的命令: 对于脚本的方式: SSH命令格式 主要参数说明 ssh控制远程主机,远程执行命令步骤 准备工作 基于公私钥认证远程登录可能存在的不足 ssh 执 ...

  7. day26-3 模拟ssh远程执行命令

    目录 模拟ssh远程执行命令 服务器 客户端 模拟ssh远程执行命令 实现在客户端输入执行命令后,返回执行命令的信息.如输入dir,显示当前目录下的所有文件和文件夹 服务器 import socket ...

  8. 学习笔记(09):Python网络编程并发编程-模拟ssh远程执行命令-代码实现

    立即学习:https://edu.csdn.net/course/play/24458/296239?utm_source=blogtoedu 1.服务器端:接收客户端发送的命令,subprocess ...

  9. php 命令行 循环,Linux_批处理的循环效果脚本,第一次运行 执行命令工A 第 - phpStudy...

    批处理的"循环"效果脚本 第一次运行 执行命令工A 第二次运行 执行命令工B 第三次运行 执行命令工A ................ 原理很简单 用if exist 判断 第一 ...

最新文章

  1. libev源码解析——定时器原理
  2. 如何将TensorFlow Serving的性能提高超过70%?
  3. 极客新闻——01、管理之善,在于让员工有机会试错
  4. 一次“炼狱”般的电脑维护
  5. 后盾网lavarel视频项目---自定义验证和自定义验证规则
  6. Java中static的作用
  7. java 证书管理系统_JAVA基础应用:单机版管理系统源代码
  8. linux挂载硬盘 只读,mount: /dev/vdb 写保护,将以只读方式挂载
  9. codeforces——Little Pony and Expected Maximum
  10. 运维从业人员是否需要考证?
  11. 如何在 C# 中使用 yield
  12. java中审核订单流程图_Java 后端横扫阿里、滴滴、美团总结的面试经验!
  13. 如何查看mysql8.0的默认密码_MySQL8.0安装之后查找默认密码
  14. Windows10安装Cmder(图文教程)
  15. 【前端 · 面试 】HTTP 总结(十一)—— HTTPS 概述
  16. python能做什么软件-一篇告诉你为什么人人都应该学点Python?
  17. 项目管理方面的几个.NET开源项目
  18. 推荐系统中传统模型——LightGBM + FFM融合
  19. 现代数字信号处理总结 下
  20. win7修改驱动inf,驱动非官方美加狮XBOX360手柄

热门文章

  1. 2021新宁二中高考喜报成绩查询,新宁各校高考喜报!最高分684,全县大获得丰收!看有你认识的吗?...
  2. 【刷题日记】网易——瞌睡
  3. 【第六章】使用jQuery操作表单和表格2
  4. 压缩比13为什么建议用92的油_纯干货|马自达发动机13:1压缩比,却可以烧92号油,为何不爆震?...
  5. 如何对GIF动图进行裁剪?GIF怎么裁剪大小?
  6. python建立分析模型_《利用Python进行数据分析》13.2 使用Patsy创建模型描述
  7. 实现打印日历的一种方式(-,-)
  8. windows 重新启动 postgresq
  9. 从0开始搭建公司技术栈,yyds
  10. Koomail:企业网管的好助手!