第一关
将 return checkFile() 的返回值,去掉,即可上传成功;
解析:
删除前端代码
第二关
抓包进行修改,文件后缀、文件类型;
解析:
抓包进行修改,白名单修改;
第三关
抓包修改后缀,只要上传的后缀不是不允许上传的都可以上传成功;
解析:
黑名单绕过
第四关
想上传一个后缀为 .htaccess 的文件,然后在上传一个图片码123.jpg
.htaccess 的文件内容: SetHandler application/x-httpd-php
123.jpg 的文件内容:
<?php
phpinfo();
?>
解析:
利用apache漏洞
.htaccess文件上传
第五关
①在抓包中修改文件php的后缀,在后缀 .php 的后面加两个 . . 但是两个点之间有空格;
②删除文件名末尾的点;
解析:
在后缀加点 或者 去掉文件后缀中的点;
第六关
在抓包中修改文件后缀的大小写,但是上传后文件的后缀可能名字会有改变,可以通过看网站
源码,来查看;
解析:
后缀大小写绕过;
第七关
在后缀后面加一个空格;
解析:
后缀加空格
第八关
删除文件中的点
解析:
删除文件中的点
第九关
没有对 ::$data 进行过滤
解析:
直接在后缀后面加一个 ::$data
这5中情况的使用:
f
i
l
e
n
a
m
e
=
d
e
l
d
o
t
(
file_name = deldot(
filename=deldot(file_name);//删除文件名末尾的点
f
i
l
e
e
x
t
=
s
t
r
r
c
h
r
(
file_ext = strrchr(
fileext=strrchr(file_name, ‘.’);
f
i
l
e
e
x
t
=
s
t
r
t
o
l
o
w
e
r
(
file_ext = strtolower(
fileext=strtolower(file_ext); //转换为小写
f
i
l
e
e
x
t
=
s
t
r
i
r
e
p
l
a
c
e
(
′
:
:
file_ext = str_ireplace('::
fileext=strireplace(′::DATA’, ‘’,
f
i
l
e
e
x
t
)
;
/
/
去
除
字
符
串
:
:
file_ext);//去除字符串::
fileext);//去除字符串::DATA
f
i
l
e
e
x
t
=
t
r
i
m
(
file_ext = trim(
fileext=trim(file_ext); //首尾去空
第十关
点空格点