第一关
直接使用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题目