upload-labs通关笔记(上)

pass-1:

分析源代码:

lastIndexOf("."):"."最后一次出现的位置

substring:截取传递的参数给定范围的字符串,本题就是"."之后的字符串,即扩展名

indexOf:寻找字符串中是否有符合参数的字符串,本题即后缀名(网页上显示的源代码中indexOf的参数是ext_name+"|",按理说应该gif后缀名也无法通过验证的,查看php文件后发现实际indexOf函数的参数为ext_name,并没有加"|")

故本题只是在前端用js检查了上传文件的后缀名,先将一句话文件后缀名改为jpg,通过前端测试后再用bp抓包修改后缀名即可

上传成功

 

将图片链接复制再通过蚁剑连接即可

pass-2

分析源码

 

分析代码发现本题是将$_FILES数组作为判断依据的,查看$_FILES数组的各项内容:

$_FILES['myFile']['name'] 客户端文件的原名称。 
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。 
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。 

 可知本题检查了$_FILES['file']['type']即文件的MIME类型,当文件上传请求发送时网页会将MIME类型写入http头中的content-type项,因此用bp抓包后修改即可

 上传成功后用与pass-1相同的步骤获得webshell即可

pass-3:

分析源码

 本题设立了黑名单,不允许上传asp、aspx、php、jsp文件

对于黑名单,可以通过将文件后缀名修改成不在黑名单中,却又能被系统执行的后缀名。常见的方法有大小写绕过(文件后缀名大小写不影响系统运行)、末尾加空格、"."绕过(后缀末尾加空格或.windows会自动去除正常解析)、末尾添加::$DATA绕过(在文件末尾加::$DATA,系统会将文件当做文件流处理),

本题将前面所说的所有绕过方法都做了过滤,但是在黑名单的设置上不够完善,将一句话文件后缀改为php3进行尝试,上传成功,再进行蚁剑连接即可

pass-4:

分析源码

 可以看到相比较于pass-3,本题已将黑名单扩充

本题就用到了另一个绕过方法:.htaccess重写解析绕过

.htaccess文件是apache独有的配置文件(.htaccess文件没有名字,只有后缀名),可以实现网页重定向、404错误页面自定义、允许/阻止特定的用户或者目录的访问、改变扩展名等功能,如果能够将.htaccess文件上传至服务器,.htaccess文件可以指定目录下某类文件被当做另一类文件解析

<FilesMatch "jpg">
SetHandler application/x-httpd-php
</FilesMatch>

AddType application/x-httpd-php .jpg

但是启用htaccess文件需要更改Apache的httpd-conf文件将allowOrride打开并开启rewrite模块

(需要注意的是,以上命令在nts版本的php中是无法执行的,而phpstudy提供的php都是nts的,所以如果是在本地通过phpstudy搭建upload-labs进行测试的话还需要在官网下载一个ts版本的php)

pass-5:

本关和第10关相同

pass-6:

分析源代码

本题没有大小写过滤,因此将后缀名改成大写即可

(但是在本地用phpstudy搭建的upload-labs访问后缀名大写的文件时会500报错,应该是伪静态之类的没有配置好,还有待研究)

pass-7:

 分析源码

本题没有空格过滤,抓包后在文件后缀名后加空格即可

pass-8:

分析源代码

 本题没有"."过滤,在后缀名后加"."即可

pass-9

分析代码

本题没有::$DATA过滤,在后缀名加::$DATA即可

(要注意的是本题若直接打开图片链接会显示403,因为图片链接上包含了::$DATA,将 :: $DATA删除再访问即可) 

pass-10:

分析源码

 本题将常见过滤方法都进行了过滤,但是只所有的过滤只是按顺序进行了一次,故

pass-11

本题用str_ireplace()函数,检测后缀名是否是黑名单,若是则用空格代替,由于只进行一次,故将后缀名双写即可 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值