upload-labs

01

随便上传个文件

发现对于上传类型有限制

查看页面代码发现是js的过滤直接关闭js

上传成功

右键图片在新建标签页打开文件

这里直接抓包改名字也行

02

抓包修改后缀名

03

发现后端做了检测抓包修改失败

大小写绕过失败,php特性php1等会被当成php执行

这里图片的名称已经不是我们传递进去的名称了在响应里面看到

这里是因为phpstudy的http配置文件中没有允许.php3格式所以显示不了

04

这里和上面的差别在于没有对我们传入的文件名做改变

php3也被过滤了使用.htaccess

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

我们在htaccess文件中可以添加

AddHandler php5-script .jpg             使用php5-script将特定的拓展文件映射为php文件

AddType application/x-httpd-php .jpg    将特定的拓展文件映射为php文件

Sethandler application/x-httpd-php 将当前目录下所有文件都映射为php文件

上传.htaccess

05

这里没有对我们传入的文件进行大小写转换

访问

06.

这里没有对文件后面的空格进行处理,可以在文件后面加上空格,由于windows特性,文件名后空格会被直接删除

07

这里没有对文件后面的.做处理

08

这里没有对后缀名有没有::$DATA进行判断,利用windows系统NTFS特征可以绕过上传

在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,其实和空格绕过点绕过类似

09

这里对于.和空格的检测只进行一次我们使用. .先进行.的处理再到 的处理就可以逃逸最先的.

10

这里的对于后缀名的处理和之前不一样,这里采用将匹配到的后缀名替换为空使用双写绕过

11

这里使用%00截断

利用条件

php版本小于 5.3.4
php.ini 中magic_quotes_gpc设置为off


原理上传 www.xxx.com/xxx.php%00a.jpg --> www.xxx.com/xxx.php
后面是截断后的成果%00后面不加数据也没关系

12.

第12和11不同在于接收方式不同,12是通过post的方式接收的

这里要对%00进行urldecode编码

13.

制作图片码

14.

和上一题的差别在于通过getimagesize函数对目标的十六进制的前几个字符串进行读取。png的文所以这关和第十三关一样,我们只需要用打开图片马,在前面加上GIF89A,保存为14.png,然后和上题一样

15.

用了exif_imagetype() 读取一个图像的第一个字节并检查其签名和13,14关一样。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许允er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值