第一关
测试:
1.本关检测上传文件类型。
2.本关检测文件类型的代码是使用的javascript代码。前端校验
解法:
发送一个jpg图片格式的文件,然后抓包改为php。
把filename给改为php格式。
现在页面显示图片了,右键复制他的地址链接。查看图片位置。
现在使用蚁剑,连接这个后门。
连接成功:
第二关
测试:
1.检测文件后缀,但是不是前端校验,在后端校验。校验的是数据包的content-type。
解法:
发送php文件,然后抓取数据包,在数据包中直接改了content-type为image/png。
更改后成功上传。
与上一关一样连接后门正常连接。
第三关
检测:
本关不允许上传
'.asp','.aspx','.php','.jsp'
解题方法:
以下的文件后缀在对方配置文件中允许执行的话也可以执行为php文件。
phtml,php3,php4, php5, pht
上传php5绕过检测php。
但是这关是要设置自己允许把这些后缀执行为php文件,很鸡肋了解一下即可。
第四关
检测:
这关过滤这些
".php",".php5",".php4",".php3",".php2",".php1",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".ini"
但是没有过滤.htaccess
.htaccess介绍
.htaccess是Apache的一个配置文件,里面能够配置解析规则。
我们利用这个文件解析我们上传的jpg文件成为php文件执行。
但是因为它是apache的配置文件,所以这个方法只能针对apache服务器才能生效。
.htaccess编写内容
AddType application/x-httpd-php .png (意思是把png当做php进行解析)
之后上传png格式文件直接访问就可以了。
第五关
检测:空格与.进行绕过。
源码中他删除一次空格和点,但是没有循环删除。也就是说如果我们套用多个就可以绕过。
本关解题思路:
windows特性,末尾多了一个.会自动删除保证程序正常执行。
利用这个特性。
我们在数据包在文件末尾添加.空格.
这样他会分离出空格.作为后缀,而他会过滤.和空格。
如此一来本文件成为payload.php.在windows中.被自动删除变成php文件。
(在数据包中更改后缀)
第六关
关卡测试:
对大小写过滤不完全,用大小写混淆后缀实现绕过
解题思路:
本关卡并不是把php转化为小写后进行判断,而是直接例举大写的多种情况。
他没有禁止Php。
这里上传Php格式的文件就可以绕过。
第七关
检测:
本关没有删除文件末尾的空格
过关思路:
直接末尾加空格。
这样就不是php了。
第八关
检测:
过滤没有循环过滤,只过滤了一次,先过滤点再过滤空格。
解题思路:
在php的后面添加.空格。
第九关
检测:
未删除字符串
过关思路:
添加::$DATA,利用这个去混淆后缀。
::$DATA是windows系统的隐藏属性,一般我们访问用不到他,一些特定的特殊程序才会用,所以这让我们能够利用起来。
第十关
检测:
过滤没有循环。先过滤点再过滤空格。
解题思路:
后缀加入点 空格 点