2019-04-08文件uploads-lads过关

第一关

直接使用noscript关闭js功能

第二关

抓包修改后缀

第三关

将后缀改为php3

第四关

使用.htaccess文件
笼统地说,.htaccess可以帮我们实现包括:
文件夹密码保护、
用户自动重定向、
自定义错误页面、
改变你的文件扩展名、
封禁特定IP地址的用户、
只允许特定IP地址的用户、
禁止目录列表,
以及使用其他文件作为index文件等一些功能。
在.htaccess里面写入代码

SetHandler application/x-httpd-php

第五关

将后缀改为Php

第六关

在后缀中添加空格进行绕过

第七,八关

禁止上传可以解析的任何后缀
这一关是没有对后缀名进行去 . 处理,利用windows特性可以再文件最后加.进行绕过一波。
(1)上传不符合windows文件命名规则的文件名
  test.asp.
  test.asp(空格)
  test.php:1.jpg
  test.php::$DATA
  shell.php::$DATA…….
会被windows系统自动去掉不符合规则符号后面的内容。
(2)linux下后缀名大小写
在linux下,如果上传php不被解析,可以试试上传pHp后缀的文件名。

第八关则是用到了
::$DATA 下面我们来解释一下它
如果上传的文件名字为:test.php::$DATA,会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。假设我们需要上传的文件内容为:下面是上传是会出现的现象:
上传的文件名 服务器表面现象 生成的文件内容
Test.php:a.jpg 生成Test.php 空
Test.php::$DATA 生成test.php
Test.php::$INDEX_ALLOCATION 生成test.php文件夹
Test.php::$DATA\0.jpg 生成0.jpg
Test.php::$DATA\aaa.jpg 生成aaa.jpg

PS: 上传test.php:a.jpg的时候其实是在服务器上正常生成了一个数据流文件,可以通过notepad test.php:a.jpg查看内容,而test.php为空也是正常的。
根据第二个现象,我们可以bypass一些黑名单验证。
后面我加\0测试的时候是想截断后面的东西,但是发现windows会无视”/””\”这两个符号前面的东西,只识别这俩符号后的字符串。(由于windows把\ /当成了目录,而上传只认识文件名所导致的)

下面是我找到的另一种说法

这道题利用的是Windows下NTFS文件系统的一个特性,即NTFS文件系统的存储数据流的一个属性 DATA 时,就是请求 a.asp 本身的数据,如果a.asp 还包含了其他的数据流,比如 a.asp:lake2.asp,请求 a.asp:lake2.asp::$DATA,则是请求a.asp中的流数据lake2.asp的流数据内容

第九关

后缀改为.php:$DATA...

第十关

将后缀该为pphhpp成功

第一关

关于get上传
这个怎么说呢
网上的是关于%00截断的但是我试了好久都没搞出来(可能为apache解析问题)
ps:这一关要求PHP在5.3.4以下而且PHP的magic_quotes_gpc要为默认状态

第二关

和第十一关差不多也是00截断只不过上传方式变为post所以方法也就变了不管怎么说我可能是因为配置问题导致关于截断的的没能成功但是我还是深入了解了截断知识
截断的方式有0x00,%00,/00之类的不过本质都是相同的,只是不同表示而已,截断的核心在于chr(0)这个字符,这个函数表示返回以数值表达式值为编码的字符,举个栗子,print chr(78) 结果是N,所以char(0)表示的ascll字符是null,当程序输出包含chr(0)变时,chr(0)后面的数据会被截断,后面的数据直接忽略,导致漏洞产生。
我们可以写个代码验证一下,在网上找到了一个浅显易懂的代码,下面我们看代码

实例

<%
path="upfiles/picture/"
file="XXX.jpg"
upfilename=path & file '最后的上传地址
%>
大家应该能清楚的看懂这个意思,path为上传的路径,file是生成的文件名,而upfilename则是最终上传后路径,试想一下,如果path是用户可以控制的,那么截断漏洞就产生了。比如我更改的path为upfiles/picture/1.aspchr(0)&XXX.jpg,chr(0)会忽略后面的东西,看看,upfiles/picture/1.asp,很熟悉吧一个webshell就这样诞生了。

第三关

此关的解题思路是上传一个图片绕过然后再利用一个文件包含漏洞来达到目的
ps:图片的合成再cmd下运行copy 1.jpg/b +muma.php /a 2.jpg
文件包含漏洞见上篇博客


然后就可以le

第四关

和上一关解法相同

第五关

利用bp抓包之后再文件头部加上GIF89a

第六

图片

七,八关

条件竞争
1、条件竞争
2、这里先将文件上传到服务器,
3、先将上传的文件存在服务器,
4、判断是否在白名单上,不在则删除[unlink]文件,
5、因此可以通过条件竞争的方式在删除[unlink]之前,访问webshell。
首先在burp中不断发送上传webshell的数据包。然后不断的访问xxx/upload-labs/upload/muma.php

第九关

上传一个php文件
但是在下面保存的名字里使用00截断

第二关

这是一个ctf题目

你可能感兴趣的:(2019-04-08文件uploads-lads过关)