upload-labs简易解答___文件上传漏洞


pass-01和pass-02

两个都是后端MIME检测,所以只需修改MIME类型即可
在这里插入图片描述
这里上传一个webshell
注意:x=phpinfo(); ------> ()不要漏了!!!
在这里插入图片描述

pass-03___黑名单–修改文件后缀名

前提:Apache的httpd.conf中有如下配置,注意#要去掉
在这里插入图片描述

修改.php后缀名为.phtml
在这里插入图片描述
在这里插入图片描述

pass-04___.htaccess绕过

①先制作一个图片马,1.php中为一句话木马

<? php @eval($_POST[x]); ?>

准备好一句话木马和一个.png文件2,然后在该文件目录下,在命令行输入 copy 2.png/b+1.php/a 3.png
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
②配置
.apache配置文件为AllowOverride All(默认为None)
在这里插入图片描述
Apache开启rewrite模块
在这里插入图片描述
下面表示存在.htaccess文件的目录下,所有文件都会被解析成php代码执行
在这里插入图片描述

<IfModule mime_module>
SetHandler application/x-httpd-php
</IfModule>

③success
在这里插入图片描述

pass-05___黑名单–大小写绕过

查看源文件,发现它虽然列举了很多,但没有把拓展名转为小写,所以直接把.php改为.pHP
在这里插入图片描述
在这里插入图片描述
鼠标右键直接得图像地址
在这里插入图片描述
在这里插入图片描述

pass-06__利用Windows系统的命名机制

在这里插入图片描述
在这里插入图片描述

pass-07__IIS6.0解析漏洞—文件解析

xx.asp;.jpg 像这种畸形文件名在;后面的直接被忽略,也就是说当成xx.asp文件执行。
在这里插入图片描述
在这里插入图片描述

pass-08__IIS7.0 | IIS7.5 | Nginx的解析漏洞

在这里插入图片描述

**原理:**Nginx拿到文件路径(更专业的说法是URI)/test.jpg/test.php后,一看后缀是.php,便认为该文件是php文件,转交给php去处理。php一看/test.jpg/test.php不存在,便删去最后的/test.php,又看/test.jpg存在,便把/test.jpg当成要执行的文件了,又因为后缀为.jpg,php认为这不是php文件,于是返回Access denied。
  这其中涉及到php的一个选项:cgi.fix_pathinfo,该值默认为1,表示开启。开启这一选项PHP可以对文件路径进行修理。
  举个例子,当php遇到文件路径/1.jpg/2.txt/3.php时,若/1.jpg/2.txt/3.php不存在,则会去掉最后的/3.php,然后判断/1.jpg/2.txt是否存在,若存在,则把/1.jpg/2.txt当做文件/1.jpg/2.txt/3.php,若/1.jpg/2.txt仍不存在,则继续去掉/2.txt,以此类推。

在这里插入图片描述

pass-08__Apache解析漏洞

在这里插入图片描述

原理: Apache解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如test.php.a.b的“.a”和“.b”这两种后缀是apache不可识别解析,apache就会把test.php.a.b解析成test.php。

在这里插入图片描述

pass-10__双写绕过

str_ireplace()函数表示将后缀名置为空,但只进行一次
在这里插入图片描述
将后缀名改为.pphphp
在这里插入图片描述
做这题时要注意apache配置问题,如果之前改过要记得改回来,还有php版本也要注意不要太低。我就是没有改导致直接上传.php文件也成功了,这是因为做pass-04___.htaccess绕过的时候改了配置,却忘了改回原样,所以不带扩展名也可以访问。

pass-11__00截断

PHP版本要小于5.3.4,php的magic_quotes_gpc为OFF状态
在这里插入图片描述
在这里插入图片描述

pass-12__IIS6.0解析漏洞----目录解析

将目录名修改为upload.php,所有文件都会被解析成php代码执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pass-13/pass-14/pass-15同一个类型___源文件检测了文件头

pass-13

在这里插入图片描述
上传文件名为3.png的图片马,但查看源码发现有检测文件头,因为只读两个字节,所以加上GIF89即可,GIF89A也相同
在这里插入图片描述
在这里插入图片描述

pass-14

在这里插入图片描述
这里获取的是文件信息,不像上面只获取两个字节,所以加上GIF89A
在这里插入图片描述
在这里插入图片描述

pass-15

exif_imagetype() 读取一个图像的第一个字节并检查其签名。
在这里插入图片描述
去掉分号
在这里插入图片描述
和前面两个一样,这个只检查第一个字节,所以GIF8,GIF89,GIF89A均可
在这里插入图片描述

pass-16__二次渲染漏洞

制作图片马3.gif,注意!创建2.gif的时候不能是空文件
在这里插入图片描述
右键将图片保存到桌面
在这里插入图片描述
将其放在010Editor观察发现没有<?php phpinfo(); ?>,加上后保存
在这里插入图片描述
在这里插入图片描述

pass-17

上传图片马,在010中发现有<?php phpinfo(); ?>
在这里插入图片描述
但有一堆乱码,不知道是不是正常现象
在这里插入图片描述

pass-18

上传图片马
在这里插入图片描述

pass-19

查看源码,是改过之后的文件名,所以直接上传shell.php即可
在这里插入图片描述
在这里插入图片描述

pass-20

修改文件类型即可
在这里插入图片描述

总结

以下是我做题所查看的资料还有遇到一些问题时的解决方法的网站
点击查看各个漏洞原理
apache启动失败
apache不带扩展名访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值