关于文件上传漏洞靶场upload-labs的入门练习及思路

本次实验用到的环境:Phpstudy,burpsuite(以下简称bp),和文件上传靶场upload-labs,渗透版火狐浏览器,中国菜刀/蚁剑。

步入正题

先将靶场环境放于phpstudy的网站根目录www,打开bp代理,浏览器设置本地代理:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第1张图片
关于文件上传漏洞靶场upload-labs的入门练习及思路_第2张图片
将bp和浏览器代理都设置为127.0.0.1,在写一个一句话木马,这里我们采用php一句话木马,然后就可以开始了。
正式开始:第一关

我们先初步进行一个试探,上传一个php文件:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第3张图片
进行一步简单的试探以后,发现了几个问题:
第一点,我们点击上传时,我们的代理(也就是bp)没有抓到包;第二点,它限制了我们上传的文件类型,只能是图片的格式。那么我们根据这两点就可以得到一些信息:在我们上传文件时,前端对我们的一个上传格式进行了限制(我在查看网页源代码的时候得到了验证),我们只能选择图片格式的文件进行上传。

关于文件上传漏洞靶场upload-labs的入门练习及思路_第4张图片
说了这么久了,步入正题。思路:我们将一句话木马的文件后缀改为图片格式然后利用bp抓包看看:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第5张图片
可以看到我们已经正常抓到包了,并且包的内容我们也看到了,这里我们就算是绕过了前端的验证了,接下来我们干嘛?当然是把文件名改回去啦:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第6张图片
看看结果:
发现已经上传成功了,这里值得注意的是,理论上这种靶场文件上传成功是会有一个返回上传成功的路径,这里没有给到我,具体的我也不清楚是什么原因,但是我们自己是知道上传路径的,所以我们直接去看看就发现已经上传成功了。
关于文件上传漏洞靶场upload-labs的入门练习及思路_第7张图片
关于文件上传漏洞靶场upload-labs的入门练习及思路_第8张图片
接下来就是连接了,我这里使用的是蚁剑,中国菜刀大同小异。打开蚁剑然后输入路径看看:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第9张图片
这里的url地址就是文件上传位子然后相对网站根目录的URL地址。连接所用的密码则是之前一句话木马里:,这里面的cmd,这里的cmd可以是任意的,但是建议用英文以免编码出错。我点击了测试连接,蚁剑告诉我连接成功,接下来点击“添加”然后会生成一项数据,点击数据进入
关于文件上传漏洞靶场upload-labs的入门练习及思路_第10张图片
这里就算是完成了,我们就可以对这个网站做一些其他的事情了。
然后接下来的几关我简单提一下思路就好了,和第一关的步骤区别仅仅就是不同的绕过姿势而已。

第二关

在响应中,Content-Type标头告诉客户端实际返回的内容的内容类型
看代码发现是Content-Type请求头白名单验证,那么好我满足你
上传shell.php文件-》抓包-》修改Content-Type请求头为image/jpeg-》上传成功
源码:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第11张图片

第三关

源码:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第12张图片
思路:
通过源码发现这个限制有点多。。。。。。。
什么大小写绕过啊,利用windows系统特性的空格和.绕过啊,NTFS文件流绕过啊,MIME验证绕过都不能用啊
最后发现用服务器解析特性可以进行绕过
如以下后缀名有可能被解析为前面的文件(需要服务器的配置文件有解析的配置)
ASP:asa/cer/cdx
ASPX:ashx/asmx/ascx
PHP:php4/php5/phtml
JSP:jspx/jspf
操作步骤:上传shell.php-》抓包-》修改文件为shell.phtml-》上传成功-》成功连接蚁剑(直接连接shell.phtml文件就好)

第四关

源码:
关于文件上传漏洞靶场upload-labs的入门练习及思路_第13张图片
嗨呀,这代码,这过滤得。但是仔细看的话,你会发现,它只是把第三关得方法给ban了。但是没有对前段过滤,这里直接使用一手.htaccess文件绕过。
  .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
1、创建1.htaccess文件,写入如下代码

SetHandler application/x-httpd-php

代码主要作用于把jpg的文件当做php的代码来执行
2、把一句话木马文件改为.jpg格式
3、把1.htaccess和shell.jpg文件分别上传
4、使用蚁剑连接shell.jpg成功
差不多了,后面得涉及到得就更深入了,有些我知道,有些我也不太会,所以就不一一写了。文件上传大概的步骤在第一关已经写得很清楚了。其他的主要就是绕过的方法了。

主要收获及体会

心得体会嘛,就觉得文件上传和sql注入类似,我们只要掌握了基本的一个解题步骤就大概算是入门了吧,接下来学习得就不过是各种得绕过姿势了,绕过知识又有很多牵扯到了web相关得知识,协议也好,程序语言也好。主要就是需要自己掌握了的知识点广,然后你对他们熟悉,那么解题的思路就是信手拈来了。

作者博客由此去

关于文件上传漏洞靶场upload-labs的入门练习及思路_第14张图片

你可能感兴趣的:(安全/web)