文件上传漏洞

文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像,附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断,比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式重命名后存储在指定的目录,如果说后台对上传的文件没有进行任何的安全判断或者判断的条件不够严谨,则攻击者可能会上传一些恶意的文件,比如一句话木马,从而导致服务器权限被获取。

防范文件上传漏洞的方法

  1. 验证文件类型、后缀名、大小
  2. 验证文件的上传方式
  3. 对文件进行一定复杂的重命名
  4. 不要暴露文件上传后的路径
  5. 等等

进入第一关

提示我们只允许上传图片

但是我们打开F12看到

这里的JS调用了一个checkFileExt的方法

这个方法在后面也找得到,大致的意思就是判断文件的扩展名是不是为jpg、png、gif

我们知道这种前端的限制只能起到辅助作用,起不到实质性的作用

我们只需要把之前那个input标签的onchange的属性删除,让上传的时候触发不了这个方法

就可以达到我们上传的目的

然后我们上传我们的php一句话木马

访问路径,测试一下我们的一句话是否能执行

第二个栏目是考MIME的

什么是MIME可以百度一下

php里有一个$_file函数来获取请求头里面的Content-Type

因此,我们只需要用抓包修改请求头里Content-Type的值

就可以绕过验证

第三个栏目—getimagesize

getimagesize()这个函数返回结果中有文件大小和文件类型,如果用这个函数来获取类型,从而判断是否是图片的话,会存在问题

我们可以伪造图片头

我们先普及一下基础知识

先查看一下他们的图片头

用linux的xxd命令

发现png图片的头部十六进制都一样

那我们可以用windows的cmd命令把一张图片和一个php文件合起来变成一个文件

安排一手

选择两个文件

合成一个新的文件叫xxx.png

表面上看还是这个图片

我们把xxx丢进kali看看

发现前面还是正常的图片,但是在最后跟上了我们的一句话木马

还需要了解的是

PHP的文件包含

include在发现错误的时候会继续执行后面的代码

当遇到我们的png的时候,会一直往下读取,执行到我们的一句话的时候就会正确执行

上传的时候我发现在21行会报错

测试后把这半条代码删除就可以正常上传

成功上传了我们的xxx.png

我们来访问一下

发现可以正常访问

但是,他是一个png

那么我们要这么才能让他执行里面的php代码呢

就要用到我们之前的文件包含漏洞

那就要让本地文件包含漏洞找到我们的png图片

发现我们上传的文件在这个文件夹之下那么我们就可以拼凑出

unsafeupload/uploads/7043985d85e8876ad12573844907.png

来进行测试,看看网站是否能找到我们的png

反正就是大概猜测在哪个目录能访问我们图片所在的路径

../../unsafeupload/uploads/7043985d85e8876ad12573844907.png

经测试我们可以用这个路径访问到我们的phpinfo

往下拉就能看到

文件上传漏洞(pikachu)的更多相关文章

  1. 【原创】JEECMS v6~v7任意文件上传漏洞(1)

    文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定 ...

  2. web安全之文件上传漏洞

    成因: 当文件上传时,若服务端脚本语言未对上传的文件进行严格验证和过滤,若恶意用户上传恶意的 脚本文件时,就有可能控制整个网站甚至是服务器,这就是文件上传漏洞. 权限: 1. 后台权限:登陆了后台,可 ...

  3. Web应用安全之文件上传漏洞详解

    什么是文件上传漏洞 文件上传漏洞是在用户上传了一个可执行的脚本文件,本通过此脚本文件获得了执行服务器端命令的功能,这种攻击方式是最为直接,最为有效的,有时候,几乎没有什么门槛,也就是任何人都可以进行这 ...

  4. 文件上传漏洞演示脚本之js验证

    文件上传漏洞演示脚本之js验证 0 0       716   关于文件上传漏洞,想必玩web安全的同学们都有接触,之前本站也发布过一篇文章介绍文件上传漏洞的各种绕过方法,但是只是有文档却没有演示代码 ...

  5. 中国电信某站点JBOSS任意文件上传漏洞

    1.目标站点 http://125.69.112.239/login.jsp 2.简单测试 发现是jboss,HEAD请求头绕过失败,猜测弱口令失败,发现没有删除 http://125.69.112. ...

  6. CKFinder 1.4.3 任意文件上传漏洞

    CKFinder 是国外一款非常流行的所见即所得文字编辑器,其1.4.3 asp.net版本存在任意文件上传漏洞,攻击者可以利用该漏洞上传任意文件. CKFinder在上传文件的时候,强制将文件名(不 ...

  7. 小白日记38:kali渗透测试之Web渗透-手动漏洞挖掘(四)-文件上传漏洞

    手动漏洞挖掘 文件上传漏洞[经典漏洞,本身为一个功能,根源:对上传文件的过滤机制不严谨] <?php echo shell_exec($_GET['cmd']);?> 直接上传webshe ...

  8. PHP漏洞全解(九)-文件上传漏洞

    本文主要介绍针对PHP网站文件上传漏洞.由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 P ...

  9. WordPress Contact Form 7插件任意文件上传漏洞

    漏洞名称: WordPress Contact Form 7插件任意文件上传漏洞 CNNVD编号: CNNVD-201311-415 发布时间: 2013-11-28 更新时间: 2013-11-28 ...

随机推荐

  1. css指示箭头两种实现方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Ali_Cloud++:阿里云-单机版 solr4.10.3 安装部署

    本次案例演示:环境 1.solr-4.10.3.tgz.tgz 2.apache-tomcat-7.0.88.tar.gz 3.IKAnalyzer2012FF_hf1.zip 资源下载:Downlo ...

  3. 1272: 【基础】求P进制数的最大公因子与最小公倍数

    1272: [基础]求P进制数的最大公因子与最小公倍数 时间限制: 1 Sec 内存限制: 16 MB 提交: 684 解决: 415 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 ...

  4. Aggressive cows(二分法)

    Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28666 Accepted: 13146 Des ...

  5. 关于C#三层架构增删改查中的“删除”问题

    序: 刚学习C#,经过一段时间学习,现在正在做一个简单的前后台联通的项目(主要是C#三层架构实现增删改查).分享一点儿小经验,也供自己以后可以回头看看自己的码农之路. 内容: 主要分享的是一条删除会用 ...

  6. EOS基础全家桶(六)账号管理

    简介 本篇我们会学习最基本的账号相关的操作,包括了创建账号和查询,关于账号资源的操作因为必须先部署系统合约,所以我们会留到后面单独写一篇来讲解. 6-EOS基础全家桶(六)账号管理 简介 账号介绍 账 ...

  7. STM32F103ZET6的中断管理

    1.STM32的中断 STM32的中断管理是属于内核部分的,所以中断管理的寄存器也是属于内核组,不属于芯片外设,在查看相关资料的时候,需要查看相对应的内核手册. STM32F103ZET6是Corte ...

  8. P1627 [CQOI2009]中位数 题解

    CSDN同步 原题链接 简要题意: 给定一个 \(1\) ~ \(n\) 的排列,求以 \(b\) 为中位数的 连续子序列且长度为奇数 的个数. 显然这段序列包含 \(b\). 中位数的定义:排序后在 ...

  9. Yum 软件仓库配置

    Yum 软件仓库的作用是为了进一步简化 RPM 管理软件的难度以及自动分析 所需软件包及其依赖关系的技术. 可以把 Yum 想象成是一个硕大的软件仓库,里面保存有几乎所 有常用的工具 . 第1步:进入 ...

  10. x86汇编利用int 16h中断实现伪多线程输入

    x86汇编利用int 16h中断实现伪多线程输入 我们都知道,如果想让一个程序,同时又干这个,又干那个,最好的办法就是多线程.这个在高级语言里面已经用烂了. 但是,DOS是只有单线程的.我如果想让程序 ...