取文件 shell_webshell文件上传分析溯源

            由于最近比较忙,暂时没有时间更新,所以分享分享一些其他博主文章,大家敬请谅解

摘要: dirbuster扫描目录发现几个有用的东东/admin/upload.php/admin/upload1.php/admin/upload2.php访问的时候最后都会跳转到/admin/upload...

dirbuster扫描目录发现几个有用的东东

/admin/upload.php
/admin/upload1.php
/admin/upload2.php

访问的时候最后都会跳转到/admin/upload2.php 前端没任何东西

但是/admin/upload1.php会有一个弹窗,查看一下前端代码

view-source:http://219.153.49.228:43799/admin/upload1.php

会发现

Markup

<script language=javascript>alert('您无权限访问!');window.open('upload2.php','_top');script>    
<form enctype="multipart/form-data" action="upload_file.php" method="post">
Send this file: <input name="filename" type="file">
<input type="hidden" name="verify" value="f8fc6604c7150e1d"/>
<input type="submit" value="Send File">
form>

第一行调用了javascript,我们在浏览器里把JavaScript禁用就能正常访问了

而且这里有个亮眼的点

先抓一下访问包,再抓一下上传包

a230beb90952dec8deedd56b7b835192.png

d6c7c2b296a8cfc2d67510b32a8af181.png

可以看到,upload_file.php是用来处理数据的,upload1.php我猜测是来生成cookie的它读取服务器上的一个txt文件,这里很有可能存在文件包含漏洞

尝试一下把uploadmd5的值改为upload_file.php

读取一下后端代码d4c24e06baa3e01e70e186d8028d8c84.png 

对这段代码进行分析

PHP

<?php 
$path="uploadfile/";//上传路径
$verify=$_POST["verify"];//接收verify参数
$time=date("Ymd");//取当前日期,今天是20200515
if($_FILES["filename"]["name"])
{
$file1=$_FILES["filename"]["name"];//取上传文件名
$file2 = $path.$time.'_'.$verify.'_'.$file1; //拼接字符串,分析一下大概就是/uploadfile/20200515_f8fc6604c7150e1d_shell.php
$flag=1;
}
if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2);
if($result) echo "上传成功!";

?>

菜刀链接即可

PHP

http://219.153.49.228:43799/admin/uploadfile/20200515_f8fc6604c7150e1d_shell.php?a=1Q2W3E

bf136888b65799886af0c72102ab8b1b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web系统数据库服务器,Web Gateway

字段名称SPB 关键字描述*目的地目录DMS.Destination您希望 Web Gateway 服务器文件所处的目录的全限定路径。缺省值是&#xff1a;对于 Solaris 与 Linux&#xff0c;是 /opt/TivTwg对于 AIX&#xff0c;是 /usr/TivTwg对于 Windows&#xff0c;是 c:\Program Files\TivTwg*…

java socket发送定长报文_一个基于TCP协议的Socket通信实例

原标题&#xff1a;一个基于TCP协议的Socket通信实例1. 前言一般接口对接多以http/https或webservice的方式&#xff0c;socket方式的对接比较少并且会有一些难度。正好前段时间完成了一个socket的接口的对接需求&#xff0c;现将实现的思路做一个整理。2. 需求概述2.1 需要提供…

7系统软raid_使用图形界面来配置RAID

RAID 配置起来要比 LVM 方便&#xff0c;因为它不像 LVM 那样分了物理卷、卷组和逻辑卷三层&#xff0c;而且每层都需要配置。我们在图形安装界面中配置 RAID 1和 RAID 5&#xff0c;先来看看 RAID 1 的配置方法。RAID 1 配置配置 RAID 1 时同样需要启动图形安装程序&#xff0…

python字典的内置函数_python – 用于字典转换的特殊方法名称的内置函数

我一直在深入研究Python类中的运算符重载和特殊方法,并且我注意到许多内置函数具有等效的特殊方法名称&#xff1a;> int(x)调用x .__ int __()> next(x)在Python 2中调用x .__ next __()或x.next()但是,一些函数,即tuple()和dict(),没有任何等价物.我知道对于这种特殊方…

合并相同数据的行_R语言笔记(六):数据框重塑(reshape2)

数据处理主要内容包括&#xff1a;1. 特殊值处理1.1 缺失值1.2 离群值1.3 日期2. 数据转换&#xff08;base vs. dplyr&#xff09;2.1 筛选&#xff08;subset vs. filter/select/rename&#xff09;2.2 排序&#xff08;order vs. arrange&#xff09;2.3 转换&#xff08;tr…

华为交换机s2700怎么重置_华为交换机忘记console的密码,怎么恢复出厂设置

展开全部1、启动时&#xff0c;32313133353236313431303231363533e58685e5aeb931333366303064按CtrlB进入BOOTROM目录2、输入BOOTROM的密码盒式交换机的某些款型支持使用快捷键“CtrlE”进入BootROM主菜单&#xff0c;请根据设备的界面提示操作。盒式交换机在V100R006C03之前的…

启动linux_使用 UEFI 双启动 Windows 和 Linux | Linux 中国

这是一份在同一台机器上设置 Linux 和 Windows 双重启动的速成解释&#xff0c;使用统一可扩展固件接口&#xff08;UEFI&#xff09;。来源&#xff1a;https://linux.cn/article-12891-1.html作者&#xff1a;Alan Formy-duval译者&#xff1a;郑&#xff08;本文字数&#x…

域控下发脚本_域用户登陆脚本

如何为一个域用户设置登陆脚本&#xff1f;- BAT可否作为登陆脚本&#xff1f;- 在域用户“属性”中&#xff0c;应如何指定登陆脚本名&#xff1f;"D:\x.bat"还是"\\srv\x.bat"&#xff1f;还是其它&#xff1f;- 脚本应该放在何处&#xff1f;- 还有没有…

mysql增量脚本_mysql全量和增量备份脚本

全量&#xff1a;[rootmaster leo]# cat DBfullBak.sh#!/bin/bash#use mysqldump to fully backup mysql dataBakDir/root/leo/fullLogFile/root/leo/full/bak.logDatedate %Y%m%dBegindate "%Y年%m月%d日 %H:%M:%S"cd $BakDirDumpFile$Date.sqlGZDumpFile$Date.sql.…

mysql 事务 引擎_mysql引擎和事务

对于应用程序和用户来说&#xff0c;同样一张表的数据无论用什么引擎来存储&#xff0c;看到的数据都是一样的&#xff0c;只是不同的引擎在功能、占用空间大小、读取性能等方面可能有所差别。mysql最常用的存储引擎为Innodb、MyISAM和全文索引5.5.5以前默认存储引擎为MyISAM&a…

shell mysql eof_shell EOF

1、考虑下面的需求&#xff0c;在主shell执行命令&#xff0c;进入其他的命令&#xff0c;后面的输入&#xff0c;想作为命令的输入&#xff0c;而不是主shell的输入&#xff0c;怎么办&#xff1f;2、使用<3、这里的EOF只是分界符&#xff0c;使用其他的字符也可以。4、比如…

MySQL查询实验报告_实验报告数据库的基本查询'

《实验报告数据库的基本查询》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《实验报告数据库的基本查询(5页珍藏版)》请在人人文库网上搜索。1、一、实验目的&#xff1a;通过该实验掌握应用SQL 查询数据库的基本方法&#xff0c;包括单表、多表查询。二、实验原理数…

mysql+odbc+ado_MFC ado+mysql+odbc技术分享

第一步&#xff1a;建立数据库假设有一个sql文件mysql>use dbname; //创建一个数据库名为dbname的数据库(空数据库)mysql>set names utf8; //编码&#xff0c;mysql>source D:/dbname.sql; //导入一个数据库源文件创建数据库内容我做…

mysql 5.7 window x64_window环境配置Mysql 5.7.21 windowx64.zip免安装版教程详解

1.从官网下载mysql-5.7.21-windowx64.zip mysql下载页面2.解压到合适的位置(E:mysql) 这名字是我改过的3.配置环境变量&#xff0c;将E:mysqlbin 添加到PATH中4.在mysql目录下(E:mysql) 创建 my.ini文件&#xff0c;内容如下&#xff1a;[mysql]# 设置mysql客户端默认字符集def…

mysql设置查询结果最大值_查找MySQL查询结果字段的最大值

将它连接到仅有最大计数的第二个查询。每天最内部查询(对于给定用户)每天计数的一组行数。从那以后&#xff0c;下一个外部执行从该集合中选择MAX()来查找并获得一个代表最高日数的记录...因为它总是返回一行&#xff0c;并且加入到原始的numRequest表中它将是一个笛卡尔&#…

MySQL建表两个单引号报错_极客起源 - geekori.com - 问题详情 - mysql建表报错,查手册看不懂,求解?...

创建带索引的数据库表需要为表名和属性添加反单引号&#xff0c;并且你当前的primary key的位置需要调整一下&#xff1a;create table abc(id int unsigned auto_increment,usename char(20) not null default ,gender char(1) not null default ,weight tinyint unsigned not…

js 用下标获取map值_javascript怎么获取map的值?

Map对象保存键/值对&#xff0c;是键/值对的集合。任何值(对象或者原始值) 都可以作为一个键或一个值。Object结构提供了“字符串—值”的对应&#xff0c;Map结构提供了“值—值”的对应。JavaScript获取map值示例&#xff1a;map对象如下&#xff1a;var mapObject {id1001:…

python attention机制_从零开始学Python自然语言处理(26)—— 强大的Attention机制...

前文传送门&#xff1a;在上一次面试失利后&#xff0c;我回来仔细研究了一下Attention机制&#xff0c;研究完我不禁感悟&#xff0c;这机制真的厉害啊&#xff01;因为我之前面试被问到的Encoder - Decoder框架中有个瓶颈是编码的结果以固定长度的中间向量表示&#xff0c;这…

[机器人-2]:开源MIT Min cheetah机械狗设计(二):机械结构设计

目录 1、四肢朝向的选择 2、电机布局形式的选择 3、电机的选型及测试&#xff08;非常重要&#xff09; 4、结构优化 5、尺寸效应 6、其他 1、四肢朝向的选择 机械狗的结构设计&#xff0c;第一个摆在我们面前的就说四肢的朝向问题&#xff0c;如下图&#xff0c;我们是…

python传文件给java_用java pyhont通过HTTP协议传输文件流

// 代码网上抄的 忘记链接了 抱歉哈packageupload;importjava.io.BufferedReader;importjava.io.DataOutputStream;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.HttpURLConnection;im…