【CISCN2023】unzip
本文最后更新于:2023年8月25日 下午
[CISCN2023]unzip
环境搭建
1.html
| 1 |  | 
1.php
| 1 |  | 
然后在命令行输入:
| 1 |  | 
将 /var/www/html/ 作为网站根目录启动php服务器

搭建成功
源码分析
首先通过1.html上传文件经过1.php,然后我们分析一下1.php:
| 1 |  | 
看到这里没什么思路,查阅文章  一个有趣的任意文件读取 可知,需要使用linux中的软链接ln

软连接的作用类似于win下的快捷方式
假如我们使用软链接生成web 文件让其指向 /var/html/www/ 目录的话,我们就可以通过该文件直接访问网站的目录了,然后我们将web文件打包成zip.zip,上传上去,这样就会在 /tmp目录生成一个 web文件,其指向 /var/html/www 目录
然后我们再上传一个 z.zip 文件 其目录为 : /web/shell.php

shell.php为一句话木马
当我们上传z.zip的时候,将其解压到 /tmp 目录下的 web目录下
重点来了,由于之前我们上传了一个软链接web到/tmp 目录下,此时若解压z.zip的话
正常情况下会解压到:/tmp/web/shell.php 但是由于web指向了 /var/www/html目录
所以会恰好将shell.php解压到 /var/www/html/shell.php 刚好解压到网站的访问目录,此时我们可以直接使用蚁剑连接了
实践探究
首先使用命令创建软链接:web
| 1 |  | 
然后使用zip命令将其压缩为:zip.zip
| 1 |  | 

然后我们上传zip.zip

成功上传到/tmp目录
接着将 /web/shell.php压缩:

上传,发现shell.php成功上传到 /var/html/www:

上传成功,然后就可以getshell了