首页 > 其他分享 >网络安全 文件上传漏洞-13 第十三关 Pass-13

网络安全 文件上传漏洞-13 第十三关 Pass-13

时间:2024-06-22 18:59:06浏览次数:3  
标签:网络安全 文件 13 打开 fileType file Pass copy 上传

点击第十三关,并点击选择显示源码。可以看到,题目要求我们上传一个图片马到服务器:

function getReailFileType($filename){
    $file = fopen($filename, "rb");
    $bin = fread($file, 2); //只读2字节
    fclose($file);
    $strInfo = @unpack("C2chars", $bin);    
    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    
    $fileType = '';    
    switch($typeCode){      
        case 255216:            
            $fileType = 'jpg';
            break;
        case 13780:            
            $fileType = 'png';
            break;        
        case 7173:            
            $fileType = 'gif';
            break;
        default:            
            $fileType = 'unknown';
        }    
        return $fileType;
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_type = getReailFileType($temp_file);

    if($file_type == 'unknown'){
        $msg = "文件未知,上传失败!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$file_type;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传出错!";
        }
    }
}

分析代码,我们可以看到服务器首先使用 fopen 和fread函数读取我们的文件:

fopen(file_parh,mode)  打开某个文件。file_path为文件路径;mode为打开模式,r表示以只读模式打开,b表示以二进制的方式打开。

fread(file_handler,len):读取文件的内容。file_handler为文件指针,是fopen的返回值,len表示读取文件的长度。

因为这一关采用读取文件的方式判断文件类型,我们不能简单的提交php木马文件。此时我们可以尝试将一句话木马的内容写进图片中。这里可以使用copy命令,copy命令的语法格式(命令提示符中 copy /? 命令可查看copy命令的用法):

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ]  source [/A | /B]  [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

其中各个参数的含义如下:

/A 表示一个 ASCII 文本文件。

/B 表示一个二进位文件。

/D:允许解密要创建的目标文件。

/V:验证新文件写入是否正确。

/N:复制带有非 8dot3 名称的文件时,尽可能使用短文件名。

/Y:不使用确认是否要覆盖现有目标文件的提示。

/-Y:使用确认是否要覆盖现有目标文件的提示。

/Z:用可重新启动模式复制已联网的文件。

/L           如果源是符号链接,请将链接复制到目标而不是源链接指向的实际文件。

其中我们用到一张图片和我们创建的一句话木马文件,再命令提示符(按住 win+r 快捷键,然后输入 cmd 并回车即可打开)中执行命令,然后回车

copy pic_body.png /b + info.php /a myphp.png

这里 /b 表示以二进制的方式打开图片, /a 表示以ascii码的方式打开文件 + 号表示将两个文件进行合并

我们发现文件已经被成功合并,可以用记事本打开图像进行确认,在文件的末尾出现一句话木马的代码:

此时我们上传我们生成的图片马,然后右键单击复制图像地址,然后点击 “文件包含漏洞” 进行测试:

可以看到测试代码,需要我们传一个 file 参数:

那么我们使用刚刚的图像地址构建url并回车,获得目标服务器的php信息:

同样的方式,可以上传jpg和gif的图片马

上一关(网络安全 文件上传漏洞-12 第十二关 Pass-12

下一关(网络安全 文件上传漏洞-14 第十四关 Pass-14

标签:网络安全,文件,13,打开,fileType,file,Pass,copy,上传
From: https://blog.csdn.net/weixin_58052886/article/details/139740288

相关文章

  • 网络安全笔记
    1,网络设备链路设备:网络设备(对外提供网络服务) 终端设备(使用网络服务)路由器交换机防火墙   pc机,服务器osi参考模型开放系统互联的参考模型iso:国际标准化组织1.物理层:传输bit2.数据链层3.网络层4.传输层5.会话层6.表示层7.应用层1-3用户运用4-7数据传......
  • NOIP2024模拟赛13:拆开未来
    NOIP2024模拟赛13:拆开未来C-重复一句话题意:给定字符串\(S\),问\(S\)的所有子串共有多少种“好的拆分方案”。对于一个字符串\(S\),一个划分是好的当且仅当能把\(S\)划分成6个非空子串\(a,b,c,d,e\),满足\(a=b=e,\c=f\)(一个字符串可能有多种划分方式)标签:......
  • LeetCode 134加油站,是环路,但我不绕圈,秒了。
    不绕圈是指,不需要看能不能转一圈回到起始点,只需要看能不能到达最后一个元素就行。在做这一道题的时候,如果判断能不能回到出发点,则需要绕一圈再回来,不仅需要创建临时变量,还要频繁使用%n获得余数,非常的不优雅。下面是优化方法:由题目很容易得出,如果存在解,则必定有gas总和大于......
  • ch13 半监督学习
    未标记样本在生产活动中,有样本的数目会很少(因为标记很昂贵),从LLM的成功来看,在unlabeleddata上训练模型是很有希望的。这种方法被称为半监督学习。半监督学习又分为纯半监督学习和直推学习纯半监督学习强调从unlabeleddata中学习出一个好的模型直推学习强调从labeled......
  • HC32L130 外部IO中断
    1.HC32L130外部端口PB2#include"app_SD3078.h"#defineRCC_RTC_INT_PORT SysctrlPeripheralGpio /*GPIO端口时钟*/#definePORT_RTC_INT GpioPortB /*GPIO端口*/#definePIN_RTC_INT GpioPin2 /*GPIO引脚*/voidApp_RTC_INTInit(void){stc_gpio_cfg_......
  • HC32L130/HC32L136开发之软件模拟IIC驱动AT24C64
    一、AT24C64电路图二、程序编码1.定义I2C总线连接的GPIO端口/*定义I2C总线连接的GPIO端口,用户只需要修改下面4行代码即可任意改变SCL和SDA的引脚*/#defineRCC_I2C_PORT   SysctrlPeripheralGpio      /*GPIO端口时钟*/#definePORT_I2C_SCL  ......
  • HC32L130读取SD3078时间
    一.SD3078电路图二.HC32L130IO模拟IIC 1.app_i2c_gpio.h/*****************************************************************************//**\fileapp_i2c_gpio.h****Headerfileforlcdfunctions******History:**-2024-06-21马天义微信:......
  • DVWA 靶场 CSP Bypass 通关解析
    前言DVWA代表DamnVulnerableWebApplication,是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序,旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。DVWA提供了一系列的漏洞场景和练习环境,用户可以通过......
  • 第13章.创建MDK工程-基于标准库版
    目录0.《STM32单片机自学教程》专栏13.1新建本地工程文件夹13.2新建工程13.2.1新建工程13.2.2新建组13.2-3添加文件 13.3配置魔术棒选项卡13.3.1Output选项卡13.3.2C/C++选项配置 13.3.3Dubug选项配置13.4使用标准库点亮LED参考资料:0.《STM32......
  • 打卡信奥刷题(132)用Scratch图形化工具信奥P9913 [普及组]「RiOI-03」water problem
    「RiOI-03」waterproblem题目描述给定一个正整数nnn,问一个正方形能否被分割为nn......