upload-labs通关全集

由于本关存在回显,通过F12查看文件上传后的名称,通过菜刀连接

pass1:

删除前端onclick,即可绕过

pass2

burpsuite抓包修改Content-Type: image/png

pass3

黑名单绕过,由于php3,php5文件均可以被解析成php文件,.htaccess文件

所以修改后缀即可绕过,图示设置php5

upload-labs通关全集_第1张图片

pass4

.htaccess文件可以存在各个文件夹中,如果该文件夹不存在此文件,则以根目录的为准,若有则以本文件夹内的为准,先上传一个自定.htaccess

upload-labs通关全集_第2张图片

上传一个符合过滤规则的图片马再用菜刀连接

pass5

1.php .  .   :源码显示,先删除末位的点,在通过截取剩下最后的点以后的字符串去匹配,所以匹配时为空,则成功绕过

pass6

大小写匹配绕过即可

pass7

后缀名后接空格,win系统接收时会将空格自动删除  1.php[ ]

pass8

源码提示存入文件时会将末位的点删除并存入   1.php.

pass9  ::$DATA  小写也可以

直接在后缀名后面添加流文件标识即可绕过

pass10

点空点方法同pass5

pass11  

替身过滤: 1.pphphp 检测删除中间的php后带入

pass12

php版本低于5.3,magic-quote-gpc=off

get方法控制上传路径,使用%00截断上传,

路径还可以用于更改文件名:1.php%00

pass13

在post中修改路径,将%00手动URL解码

pass14+ pass15+pass16

文件包含漏洞:

upload-labs通关全集_第3张图片

由代码可知,将全部执行文件所有代码

使用挂马图片绕过

该文件包含php文件在根目录下,

则路径:http://ip/upload-labs/include.php?file=upload/挂马图片

pass16

php.ini文件下,extension=php_exif.dll去掉前面的分号

pass17

面对存在二次渲染的情况,考虑使用条件竞争,即在被二次渲染之前对文件进行一次操作,使用burpsuite的intruder生成持续发包的脚本上传图片,再生成一个持续访问图片马的脚本,先启动发包脚本再启动访问脚本,然后关闭发包脚本再关闭访问脚本,即可存留图片马

但需要结合文件包含或其他方法上传解析配置文件才能连接菜刀

pass18

同样是上传图片马通过条件竞争存留图片马

pass19

图片马+文件包含,或者本地解析配置文件漏洞

pass20

文件名可控,在post提交的数据处为一句话木马文件后缀加空格或加/.

pass21

源代码中使用数组判断,可考虑数组绕过

如果是数组则变为小写再以小数点分割文件名,并返回数组形式

再使用检查数组最后一个元素是否为合法后缀(存在伪造)

绕过方法:传入参数时给save_name改成数组形式,如下

upload-labs通关全集_第4张图片

源代码中,会将savename以点号拆分,并顺序排列

如不将替身后缀放入下标2中,则导致替身被覆盖,无法绕过

且源代码中会为文件再组装一次文件名,正常情况为将文件名和后缀名以点号相连

绕过:在文件名后添加斜杠,再经由后端代码将文件名和替身后缀以点号相连,由于windows会将/.后面的省略,最后只能留下真正的文件名

你可能感兴趣的:(php,安全,web安全)