前言
打CISCN时遇到的一个姿势,是linux的一个常用命令,可以在文件上传但是不知道传入的临时文件名的情况中利用
可以参考的题目深育杯2021web-zipzip
参考文章linux中软连接
什么是软连接
软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
简单来说,就是windows里面的快捷方式。
创建软连接
ln -s target source
ln -s:表示创建一个软连接;
target:表示目标文件(夹),即源文件。
source:表示当前目录的软连接名,即被创建出来的软连接名称以及放置在何处。
实操:
这里路径名好像必须是绝对路径才行
和windows快捷方式一样,源文件被删除的话软连接也会失效
应用
众所周知文件上传题中的文件大多数情况下都会被上传到某个特定的文件夹中,但是如果我们不知道文件夹的名称且上传成功后没有回显的时候怎么办呢?
这个时候就需要用到我们的软连接
原理我这里大概形容一下:(纯脑测,尚未经过本人测试)
我们在本地的kali路径下创建一个软连接,指向网页的主目录/var/www/html
,
ln -s /var/www/html cmd
然后进行上传,此时这个软连接的位置在上传文件的文件夹中(假设在/tmp/uploads
)
这个时候那边应该为/tmp/uploads/cmd
,指向/var/www/html
此时我们再写一个具有一句话木马的php文件,抓包上传时取名为/cmd/1.php
(即在cmd文件夹下的1.php)
上传文件,实际上是传入了/tmp/uploads/cmd
这个目录下,但是这是一个软连接,访问之后会跳转至指向的文件夹,也就是说最后被传到了/var/www/html
下