+ +

文件上传漏洞

就简单的记了几道题的步骤,emmmm,记住步骤是第一步,emmmm,小姐姐那么可爱,必须努力写呀

文件上传漏洞

上传的文件不进行限制,有可能会被利用上传可执行文件、脚本到服务器上,并且通过脚本文件可以获得获得执行服务器端命令的能力。

木马

按照后台语言分类:asp一句话木马,JSP一句话木马,php一句话木马

按照功能分类:大马、小马

一句话木马举例:

GET请求:



一些有关GET请求的命令:GET方式可以直接在url后面加?和传入的参数,a=phpinfo()查看有关php信息;a=dir查询当前目录下的文件目录;a=pwd查询当前文件上层目录;

POST请求:

上传包含一句话的木马后,用hackerbar在Post data里写执行的命令的参数,点执行

一些有关post的命令:a=system(‘pwd’);
a=system(’ls’).



上传木马文件后,利用AntSword输入URL以及参数,(大概是为了获得主机权限)

操作步骤:点击data,添加,在弹出的框中对应位置输入URL和参数,值得注意的是URL应为你上传木马文件的位置,密码为你写的参数





上传文件并连接过后,右键点击文件管理,此时就可以对主机的文件就行下载了

例题

一、客户端javascript检测

题目http://127.0.0.1/upload-labs/Pass-01/index.php



由源码可以看出此时只比较文件后缀名是否一致,有两种方法解决。

1、利用火狐插件hacker插件,打开设置,在图中地方打勾,此时即可上传木马文件,即php文件



若上传成功,则网页此时会变成下面:



同时在www目录下能找到我们上传的文件



那么到此为止,我们的第一步上传木马就成功了,下面我们要通过AntSword连主机,找到我们需要的东西。

首先新建连接,然后右键打开FileManager,成功会出现文件列表,但我又双叒叕不行了,觉得逻辑是没问题的,emmmmm

第二种方法:

先把文件改成符合条件的文件格式上传,再在抓包,修改文件的后缀名



开启代理,打开burpsuit,上传文件,截包修改



改变文件名的后缀名,以及Content-Type改成php的内容类型,然后点击go

此时在根目录下可以看到我们上传的php文件,及上传成功,然后与上面一样的步骤,即可看到下面的图片:


就成功啦


二、服务端检测绕过(MIME类型检测)

此时看源代码可看出,它是通过检测文件内容类型来检测的,所以我们不能单纯的通过改文件后缀名来上传,而是上传php文件,然后抓包后修改文件Content-Type为所允许上传的类型,



提交就可以了,但是在根目录下发现我上传了两个文件:



不过不影响AntSword的连接和使用。


三、服务端目录路径检测

这题比较坑。。。。。。

http://127.0.0.1/upload-labs/Pass-11/index.php

简单来说,这题就是我们在上传的时候,若上传文件成功,他会自动修改我们的文件路径,此时我们可以通过利用%00来截断文件后面的名字。



修改路径和Content-Type即可

然后,很神奇,我又在我的WWW目录下发现了两个文件:



然而连接也是成功了的:


哇,这题坑了我们一下午,有些东西不一定是我们逻辑上的错误,可能是软件本身或者电脑本身造成的困扰,所以大部分的时间都在被困在这些不重要却很烦的东西,真正逻辑上的原理,却并没有去关注它。

四、作业

http://ctf5.shiyanbar.com/web/upload



首先我们尝试直接上传php文件,结果:



利用hackerbar关闭js,结果依旧如上图。(基本可以排除第一题那种情况啦,第二种的方法试一试)

那我们就改变下文件后缀名为jpg,然后上传,依旧不成功:



学安全的人都比较阔爱呀

那就截包改变其Content-Type试试?



结果是这个样子滴:



文件是上传成功了,然而并没有flag, 幽灵/幽灵/幽灵

是这个样子的,那就只能是第三种啦,这里有点特殊:



第一处的修改为1.php加空格,然后加.jpg,原因:加一个什么空格之类的,是用来标记的,就是要填00的位置,就是开始截断的地方

第二处将内容类型改成php的,点击go即可:





OKKK,终于结束啦,感觉这是我做的最全的作业了