首页 > 其他分享 >[CISCN2023] unzip

[CISCN2023] unzip

时间:2023-10-30 21:13:57浏览次数:34  
标签:文件 unzip zip CISCN2023 上传 链接 压缩包

[CISCN2023] unzip

前言

什么是软链接

软链接是Linux里面常用的一个命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。它类似与c语言中的指针,传递的是文件的地址。软链接类似于windows中的快捷方式。可以用这种方式来突破只能在tmp文件夹上传文件的限制。

解题

unzip是Linux里面用于解压zip压缩包的一个命令,进入容器,是一个文件上传的页面,试着上传一个php的文件,看能不能执行,然后跳转得到一段源码,逐句分析一下

<?php
error_reporting(0);
highlight_file(__FILE__);
//使用finfo_open函数打开一个文件信息资源,用于获取文件的MIME类型
$finfo = finfo_open(FILEINFO_MIME_TYPE);
//如果上传的文件的MIME类型是application/zip,即ZIP压缩文件,就执行下一步。
if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'){
	//使用exec函数在服务器上执行一个命令,该命令是切换到/tmp目录并解压上传的文件。 
    exec('cd /tmp && unzip -o ' . $_FILES["file"]["tmp_name"]);
};

//only this!

分析完这个代码明显知道我们需要上传一个zip的压缩包,这个压缩包将会在/tmp目录下进行解压。可以尝试上传一个带马的文件的压缩包,解压再去访问,但是我们无法访问/tmp目录,无法访问文件,怎么绕过这个就成了需要解决的问题。

软链接可以解决这个问题,我们可以先上传一个带有软链接的压缩包,这个软链接指向网站的根目录,然后我们再上传一个带马的文件压缩包,就可以将这个带马文件压缩到网站根目录下getshell。

主要命令:
ln -s /var/html/www shell
zip --symlinks shell.zip shell

再在一个文件夹下面写入一个带马的php文件

再上传这两个zip,先上传link.zip再上传link1.zip成功getshell。

参考链接

[unzip详解]([CISCN2023]unzip 详解 - gxngxngxn - 博客园 (cnblogs.com))

标签:文件,unzip,zip,CISCN2023,上传,链接,压缩包
From: https://www.cnblogs.com/B0like/p/17798826.html

相关文章

  • Linux命令(74)之unzip
    linux命令之unzip1.unzip介绍linux命令是用来解压缩名称后缀为".zip"的文件2.unzip用法unzip[参数]filenname.zipunzip常用参数参数说明-l显示压缩文件内所包含的文件-t检查备份文件是否正确无误-v显示命令执行详细过程-q不显示命令执行过程-P<密码>使用unzip的密码选项-d......
  • Spack:软件包管理的终极解决方案 以 unzip 无sudo权限安装为例
    Spack是一个高度可配置的软件包管理工具,旨在支持各种软件栈的安装和管理。尽管最初是为高性能计算设计的,但Spack的灵活性和扩展性使其也能在多种计算环境中派上用场,包括个人电脑和云基础设施。初始化和配置在Ubuntu下的安装和配置克隆Spack仓库使用以下命令从GitHu......
  • gunzip
    gunzip用来解压缩文件补充说明gunzip命令用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为.gz。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。语法gunzip(选项)(参数)选项-......
  • linux压缩和解压缩:gzip gunzip | zip unzip | tar指令
    摘要目的:介绍压缩和解压缩的指令:gzip和gunzip,用于文件的压缩和解压缩zip和unzip,用于压缩/解压缩文件和文件夹,在项目打包时有用tar指令指令1.gzip和gunzip指令功能说明选项gziphello.txt压缩文件只能压缩文件,不能压缩文件夹gunzip文件.gz解压文件......
  • unzip
    unzip用于解压缩由zip命令压缩的压缩包补充说明unzip命令用于解压缩由zip命令压缩的“.zip”压缩包。语法unzip(选项)(参数)选项-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;-f:更新现有的文件;-l:显示压缩文件内所包含的文件;-p:与-c参数类似,会将解压缩的结果显示到......
  • 春秋杯春季联赛&&ciscn2023华北赛区部分题解
    前言复现几个比赛时没做出来的题1.[CISCN2023华北赛区]ez_ruby查文档可知ruby内置的open函数,如果第一个字符是管道符|,后面就可以接命令。这可能是考察涉猎的知识范围广不广吧。直接nc反弹shell即可2.[CISCN2023华北赛区]ExifTool看着天枢佬复现的,说是非预期,不知道预......
  • Linux常用命令-unzip命令详解!
    在Linux系统中命令有很多,可进行磁盘管理、文件管理、文件传输、文档编辑等,而且相同功能的命令也有很多,比如解压缩命令,常用的有:tar、gzip、bzip2、zip、unzip、rar、unrar等,本文为大家详细介绍一下unzip命令,一起来看看吧。Linuxunzip命令用于解压缩zip文件。unzip为.zi......
  • CISCN2023 Quals Reverse Writeup
    打了两天,第一天出了俩,第二天就出了一个(还不是Android,只能说非常离谱ezbyte看师傅们的Writeup都说是DWARFExpression,可以直接用readelf-wf就行,我比赛的时候没看出来,直接动态调试分析的。这里看到把输入压栈,在栈上下内存断点直接断到虚拟机里了,然后动态调试即可给......
  • 【CISCN2023】unzip 详解
    【CISCN2023】unzip详解考察点:软连接+getshell首先分析一下题目,unzip,百度一下,发现这是一个linux命令,用于解压缩zip压缩包,这里放出一个详细解释,就不赘述了。https://www.cnblogs.com/cxhfuujust/p/8193310.html进入容器,可以得到一个文件上传的页面:于是,按照惯性,我们可以先......
  • Unzipping Files In iOS Using ZipArchive
    Inthistutorial,IamgoingtodemonstratehowyoucanzipandunzipfilesfromwithinyouriOSapplications.WewillbeusingathirdpartylibrarycalledZipArchivetoachievethis.Whilethereareacouplesolutionsouttheretozipandunzipfiles,......