php一句话木马调用cmd命令,一句话木马(webshell)是如何执行命令的
在很多的渗透过程中,渗透人员会上传一句话木马(简称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)是如何执行命令的相关推荐
- 如何调用cmd.exe程序,并可以传递一些命令行参数
语句是WinExec("cmd.exe /k 命令行参数",SW_SHOW); 下面是全部解释: 启动 Windows XP 命令解释程序一个新的实例 CMD [/A | /U] ...
- cmd到指定目录并执行命令 mysql到bin目录并执行命令 cmd bat进入指定文件夹中并执行命令
其实就一条命令:(保存为bat格式,注意:有两个and希腊字母 && ) cmd /k "cd /d Your ProjectPath&&Your CMD c ...
- linux shell两条命令,在bash shell终端中执行命令时,若要将多条命令书写在一行中,每个命令之间应用( )符号进行分隔。...
[单选题]DE 杆的角速度的转向为: [判断题]中碳钢的含碳量在0.25%~0.6%之间 [多选题]在大众餐馆吃饭时,应该先( ),之后才能抽烟. [单选题]乳腺癌改良根治术后对患侧上肢肿胀的护理,错 ...
- Python_编写UDP通信编解码类、文件的上传、远程执行命令、黏包
1.UDP通信编解码类 (1) 类 1 # ------------------UDP通信解码编码类------------------------ 2 3 from socket import * ...
- python批量运行cmd_python 批量ssh并执行命令
1.安装paramiko模块 pip install paramiko 可以修改ssh连接超时时间,windows下路径:在安装路径Python\Python36\Lib\site-packages\ ...
- 【shell】Linux Shell远程执行命令
目录 shell远程执行 前提条件: 对于简单的命令: 对于脚本的方式: SSH命令格式 主要参数说明 ssh控制远程主机,远程执行命令步骤 准备工作 基于公私钥认证远程登录可能存在的不足 ssh 执 ...
- day26-3 模拟ssh远程执行命令
目录 模拟ssh远程执行命令 服务器 客户端 模拟ssh远程执行命令 实现在客户端输入执行命令后,返回执行命令的信息.如输入dir,显示当前目录下的所有文件和文件夹 服务器 import socket ...
- 学习笔记(09):Python网络编程并发编程-模拟ssh远程执行命令-代码实现
立即学习:https://edu.csdn.net/course/play/24458/296239?utm_source=blogtoedu 1.服务器端:接收客户端发送的命令,subprocess ...
- php 命令行 循环,Linux_批处理的循环效果脚本,第一次运行 执行命令工A 第 - phpStudy...
批处理的"循环"效果脚本 第一次运行 执行命令工A 第二次运行 执行命令工B 第三次运行 执行命令工A ................ 原理很简单 用if exist 判断 第一 ...
最新文章
- libev源码解析——定时器原理
- 如何将TensorFlow Serving的性能提高超过70%?
- 极客新闻——01、管理之善,在于让员工有机会试错
- 一次“炼狱”般的电脑维护
- 后盾网lavarel视频项目---自定义验证和自定义验证规则
- Java中static的作用
- java 证书管理系统_JAVA基础应用:单机版管理系统源代码
- linux挂载硬盘 只读,mount: /dev/vdb 写保护,将以只读方式挂载
- codeforces——Little Pony and Expected Maximum
- 运维从业人员是否需要考证?
- 如何在 C# 中使用 yield
- java中审核订单流程图_Java 后端横扫阿里、滴滴、美团总结的面试经验!
- 如何查看mysql8.0的默认密码_MySQL8.0安装之后查找默认密码
- Windows10安装Cmder(图文教程)
- 【前端 · 面试 】HTTP 总结(十一)—— HTTPS 概述
- python能做什么软件-一篇告诉你为什么人人都应该学点Python?
- 项目管理方面的几个.NET开源项目
- 推荐系统中传统模型——LightGBM + FFM融合
- 现代数字信号处理总结 下
- win7修改驱动inf,驱动非官方美加狮XBOX360手柄
热门文章
- 2021新宁二中高考喜报成绩查询,新宁各校高考喜报!最高分684,全县大获得丰收!看有你认识的吗?...
- 【刷题日记】网易——瞌睡
- 【第六章】使用jQuery操作表单和表格2
- 压缩比13为什么建议用92的油_纯干货|马自达发动机13:1压缩比,却可以烧92号油,为何不爆震?...
- 如何对GIF动图进行裁剪?GIF怎么裁剪大小?
- python建立分析模型_《利用Python进行数据分析》13.2 使用Patsy创建模型描述
- 实现打印日历的一种方式(-,-)
- windows 重新启动 postgresq
- 从0开始搭建公司技术栈,yyds
- Koomail:企业网管的好助手!