靶场网址:http://localhost/upload-labs-master/
第一关
先在记事本中写入一句话木马并保存在文件夹中,在文件属性处我们修改木马文件的类型为php,并将修改好的php文件上传到网页上
点击上传后我们可以发现网页无法上传php文件,故我们可以尝试将文件类型改为jpg上传
文件类型改为jpg后我们可以发现文件可以正常上传,此时我们对于上传的jpg文件进行抓包
在抓包数据里,将文件类型重新改为php后放行
图片上传成功后我们右击图片并在新窗口打开,我们可以得到解析过后的一句话木马指令
第二关
与第一关相同,上传一个jpg类型的木马文件并进行抓包
将抓包信息中的jpg类型改为php后放行
右击上传的图片并在新窗口打开得到解析后的木马文件
第三关
上传jpg木马文件
抓包并修改文件类型后放行
我们可以发现我们修改的php文件类型被拦截
我们尝试将文件类型改为php3或php5然后放行,可以看到将文件类型改为php3后图片成功上传但无法解析
我们尝试改为php5后放行→成功通关
第四关
查看源码,我们可以发现本题的黑名单将大部分后缀都过滤掉了
这种情况我们可以将所的文件都解析成php或者是特定的文件解析为php,即创建一个.htaccess文件写上内容进行上传,并将文件类型改为jpg格式
.htaccess文件解析漏洞
常用的几种.htaccess参数配法有以下几种:
AddHandler php5-script .jpg
AddType application/x-httpd-php .jpg
Sethandler application/x-httpd-php
Sethandler
将该目录及子目录的所有文件均映射为php文件类型
Addhandler
使用 php5-script 处理器来解析所匹配到的文件
AddType
将特定扩展名文件映射为php文件类型
将新建的.htaccess文件上传到页面,我们可以发现图片显示上传成功,此时文件上传规则已被改变
上传木马文件并重复之前的操作,抓包→修改文件类型→放行
在新页面打开图片文件
第五关
抓包,将文件后缀改为php. .
第六关
根据代码我们可以发现本关没有对大小写进行过滤
将文件后缀改为Php
第七关
查看源代码我们可以发现本关没有对首尾去空进行过滤
所以我们进行抓包将文件后缀改为php+“空格”
成功!
第八关
根据源代码我们可以看出本题缺少了对文件名末尾的点的过滤方式
故我们抓包并将文件后缀改为php.
成功解析
第九关
查看源代码发现少了去除字符串::$DATA
抓包,并修改后缀为php::$DATA,然后放行
(靶场更新ing)
第十关
根据源代码我们可以发现对首尾去空和删除文件末尾的点均有限制
故我们可以和第五关一样抓包将文件后缀改为php. .
放包 解析成功~~