在很多的渗透过程中,渗透人员会上传一句话木马(简称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. redis value is not an integer or out of range
  2. 如何进行现场演示(二)
  3. 转:【Python3网络爬虫开发实战】6.4-分析Ajax爬取今日头条街拍美图
  4. 2019(dotNet全栈开发)公众号回顾
  5. 复权就是对股价和成交量进行权息修
  6. [css] 遇到overflow: scroll不能平滑滚动怎么解决?
  7. 初步看,我要在公司赚取更多的工资,钱多活少离家近
  8. deeplearning.ai——字符级语言模型-恐龙岛
  9. 车联网技术与产业发展趋势 学习记录
  10. 请问大家,有没有法学相关的毕业论文选题 ?
  11. linux 下载百度网盘资源 centos安装aria2
  12. 杭州亲历重要时间点记录
  13. HDU 4489 找出n!个全排列数中的“波浪数” dp 思维,全排列
  14. python提取cad坐标_教你一个实用的CAD坐标提取技巧
  15. 区块链入门教程(6)--配置使用控制台
  16. 泰山OFFICE技术讲座:全网首发:中文字体,字号就是中文字符的宽度
  17. Linux exec函数
  18. 计算机电源 安装方向,怎么安装计算机电源
  19. 轨道运营管理专业自荐书_城市轨道交通运营管理专业自荐信范文【精选】
  20. Swift实战(一): 剪子包袱锤ios应用

热门文章

  1. [CC2642r1][syscfg] 中文图形化界面,方便快速熟悉工具使用
  2. 《Journal of Solar Energy Engineering》期刊介绍(SCI 4区)
  3. 1660s功耗多少w_gtx660满载功耗是多少
  4. Electron(基于Vue)中使用IPC
  5. 冯·诺依曼计算机与现代计算机原理与差别
  6. 《把时间当作朋友》第1章读后感(一)
  7. python做人工智能对话_如何用Python制作聊天机器人?
  8. Unicode对汉字的编码
  9. HTTP长连接,短链接,持久连接的区别
  10. 2023年考研计算机数学考什么?