中国菜刀

在web渗透中,我最期待两种漏洞,一种是任意命令执行漏洞,如struct2漏洞等;另一种是文件上传漏洞,因为这两种漏洞都是获取服务器权限最快最直接的方法。而对于任意命令执行漏洞,如果是通过内网映射出来的,那么可能还需要使用不同的手段进行木马文件上传,从而获取webshell,通过webshell进行端口转发或者权限提升。

本文主要是介绍文件上传中的个人利用技巧经验汇总,讲解分为两部分:一部份是文件解析漏洞,另一部份是文件上传漏洞。

文件解析漏洞

解析漏洞主要是一些特殊文件被iis、Apache、Nginx等服务在某种情况下解释成脚本文件格式并得以执行而产生的漏洞。

iis 5.x/6.0解析漏洞

iis6.0解析漏洞主要有以下三种:

1. 目录解析漏洞 /xx.asp/xx.jpg

在网站下创建文件夹名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被iis当做asp文件来解析并执行。因此只要攻击者可以通过该漏洞直接上传图片马,并且可以不需要改后缀名!

2. 文件解析 xx.asp;.jpg

在iis6.0下,分号后面的不被解析,所以xx.asp;.jpg被解析为asp脚本得以执行。

3. 文件类型解析 asa/cer/cdx

iis6.0 默认的可执行文件除了asp还包含这三种asa、cer、cdx。

Apache解析漏洞

Apache对文件的解析主要是从右到左开始判断并进行解析,如果判断为不能解析的类型,则继续向左进行解析,如xx.php.wer.xxxxx将被解析为PHP类型。

IIS 7.0/ Nginx <8.03畸形解析漏洞

在默认Fast-CGI开启状况下上传名字为xx.jpg,内容为:

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

然后访问xx.jpg/.php,在这个目录下就会生成一句话木马shell.php。

Nginx<8.03空字节代码执行漏洞

nginx如下版本:0.5., 0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37在使用PHP-FastCGI执行php的时候,URL里面在遇到%00空字节时与FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码。

另一种Nginx文件漏洞是从左到右进行解析,既可绕过对后缀名的限制,又可上传木马文件,因此可以上传XXX.jpg.php(可能是运气,也可能是代码本身问题,但在其他都不能成功的条件下可以试试)。如下:

Content-Disposition: form-data; name="userfiles"; filename="XXX.jpg.php"

htaccess文件解析

如果Apache中.htaccess可被执行并可被上传,那么可以尝试在.htaccess中写入:

SetHandler application/x-httpd-php

然后再上传shell.jpg的木马,这样shell.jpg就可被解析为PHP文件了。

操作系统解析

由于windows会将文件的后缀中的空格以及点进行过滤,如果遇到是黑名单校验的,如限制不允许上传PHP文件,而系统又是windows系统,那么我们可以上传xx.php ,或者xx.php.,通过这种方式就可以绕过黑名单检验的文件上传!

文件上传漏洞

文件头欺骗漏洞

在一句话木马前面加入GIF89a,然后将木马保存为图片格式,可以欺骗简单的waf。

filepath漏洞

filepath漏洞主要用来突破服务器自动命名规则,主要有以下两种利用方式:

1、改变文件上传后路径(filepath),可以结合目录解析漏洞,路径/x.asp/

2、直接改变文件名称(都是在filepath下进行修改),路径/x.asp;.

00截断

00截断的两种利用方式:

1、更改filename,xx.php .jpg,在burpsuit中将空格对应的hex 20改为00

2、更改filename,xx.php%00.jpg,在burpsuit中将%00进行右键转换-url-urldecoder

filetype漏洞

filetype漏洞主要是针对content-type字段,主要有两种利用方式:

1、先上传一个图片,然后将content-type:images/jpeg改为content-type:text/asp,然后对filename进行00截断,将图片内容替换为一句话木马。

2、直接使用burp抓包,得到post上传数据后,将Content-Type: text/plain改成 Content-Type: image/gif。

iconv函数限制上传

如果某天你上传文件发现,不敢你上传什么文件,上传后的文件都会自动添加一个.jpg的后缀,那么我们可以怀疑是否是使用iconv这个函数进行了上传的限制,此时我们可以使用类似00截断的方法,但是这里不是00截断,二是80-EF截断,也就是说我们可以修改HEX为80到EF中的某一个来进行截断,如果真是使用这个函数的话,那么恭喜你上传任意文件成功!如上传一个xx.php ,然后截断抓包将后面的空格对应的十六进制改为80到EF中的任意一个!

双文件上传

再一个文件上传的地方,右键审查元素,首先修改action为完整路径,然后复制粘贴上传浏览文件(

表单提交按钮

我们有时扫描发现上传路径,可是只有一个浏览文件,却没有提交按钮,此时我们就需要写入提交按钮。

写入表单:

F12审查元素,在选择文件表单下面添加提交按钮代码。

上传php文件不能解析,浅谈文件解析及上传漏洞相关推荐

  1. 浅谈线程池(上):线程池的作用及CLR线程池

    线程池是一个重要的概念.不过我发现,关于这个话题的讨论似乎还缺少了点什么.作为资料的补充,以及今后文章所需要的引用,我在这里再完整而又简单地谈一下有关线程池,还有.NET中各种线程池的基础.更详细的内 ...

  2. 浅谈数据库设计技巧(上)

    浅谈数据库设计技巧(上) 说到数据库,我认为不能不先谈数据结构.1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法.尽管现在的程序开发已由面向过程为主逐步过渡 ...

  3. kinect能接到电脑上用吗_浅谈:在PC上用摄像头体验体感控制

    浅谈:在PC上用摄像头体验体感控制 2016-01-28 13:02:22 7点赞 11收藏 20评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情 ...

  4. nginx 上传文件漏洞_浅谈文件上传漏洞(其他方式绕过总结)

    前言 上一篇文章简单的介绍了绕过客户端检测,现在总结一下其他方式绕过. 正文 1.1 服务端MIME类型检测绕过 检测原理:用户上传文件时,服务器会获取这个文件的MIME值,与事先设置好的进行比对,如 ...

  5. html转jsp文件乱码问题,浅谈jsp文件和HTML互相引入的乱码问题

    浅谈jsp文件和HTML互相引入的乱码问题 1.在jsp中用include指令引入HTML文件时遇到的问题: jsp.html都可以正确的显示,当jsp引入html时访问jsp页面HTML出现乱码,j ...

  6. tomcat temp 大量 upload 文件_原创 | 浅谈URI中的任意文件下载

    点击上方蓝字 关注我吧引言 文件下载是比较常见的业务.常见的接口格式为/download?fileName=xxx.png,整个过程若没过滤目录穿越符号-/或者未对下载的路径进行处理限制.当传入的fi ...

  7. python语言源程序文件类型_浅谈Python的文件类型

    Python的文件类型主要分为3种:源代码(source file).字节码(byte-code file).优化的字节码(optimized file).这些代码都可以直接运行,不需要编译或者连接. ...

  8. iOS探索:Block解析浅谈

    什么是Block Block是将函数及其执行上下文封装起来的对象 接下来让我们通过源码来看一看Block的本质 我们在一个方法中写了三行代码,第一行是定义了一个局部变量,第二行是一个Block,第三行 ...

  9. map文件分析 stm32_浅谈STM32的启动过程

    分享这篇文章,谈一下STM32启动流程.如果读者朋友已经有过汇编相关基础,能够够好理解本文内容.汇编语言是比C语言更接近机器底层的编程语言,能让我们更好的理解和操纵硬件底层. STM32三种启动模式 ...

最新文章

  1. 在Ubuntu上安装Odoo 11(企业版)
  2. Leaflet中加载Geoserver发布的WMS服务显示地图
  3. OpenCV伪彩色applyColorMap函数
  4. Linux 命令之 find -- 查找文件和目录/搜索文件和目录
  5. 力扣合并两个有序数组
  6. C#LeetCode刷题之#840-矩阵中的幻方(Magic Squares In Grid)
  7. 招商银行王龙:金融科技银行数据架构设计的13条守则(含PPT)
  8. 为什么要用3个通道来表示法线?
  9. HTML5新增input表单(HTML5)
  10. java.util报错
  11. MATLAB常用的基本数学函数
  12. python脚本读书心得_《利用Python进行数据分析》读书笔记(一)Python Basic
  13. android studio 通知栏广播,Android消息推送,通知栏的显示和点击
  14. 微信小程序05 事件绑定与事件传参
  15. 如何进行软件技术管理?
  16. Capstone/CS5211低成本替代昆泰CH7511B方案
  17. 北京市居住证办理问题的整理
  18. R 语言消除pdf图片的空白
  19. 快递面单成信息泄露重灾区,隐私面单成“必选项”
  20. iOS_3DTouch使用

热门文章

  1. 局部解剖学名词解释及大题
  2. RRAM在神经元中的含义是什么?
  3. BUUCTF-Misc-爱因斯坦
  4. 城市轨道交通运营管理属于什么院系_城市轨道交通运营管理系统专业
  5. 苏嵌实训——day11
  6. 金蝶KIS专业版启用后修改允许负库存sql语句
  7. 2花瓣html,html花瓣飘落特效_520情侣浪漫表白JS特效分享(附源码)
  8. 订单数额总数实现_纺织业行情久违火爆?大量印度订单转到中国!
  9. PROCESSENTRY32结构体 CreateToolhelp32Snapshot Process32First 和Process32Next
  10. 我想要绅博注册邀请码