upload-labs闯关04-12

Posted iamyoyodan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了upload-labs闯关04-12相关的知识,希望对你有一定的参考价值。

upload-labs是一个包含了各种上传漏洞的靶场,搭建地址:https://github.com/c0ny1/upload-labs

Pass-04

1、查看源码可以看到此处也做了黑名单过滤,过滤的内容还不少
技术图片

2、此处黑名单没有过滤.htaccess后缀,所以此处可以上传.htaccess文件进行绕过

3、.htaccess文件生效的前提条件一为httpd.conf文件中mod_rewrite模块开启,二为相同文件中的AllowOverride为All,然后就可以在网站目录下创建.htaccess文件

4、新建文本文档,构造内容:AddType application/x-httpd-php .jpg,因为windows环境下创建文件必须得有文件名,所以得将文件另存为".htaccess"
技术图片

5、将.htaccess上传之后接着就可以将要上传的php文件后缀改为jpg从而进行绕过,注意这里使用老版本的phpstudy才能成功,原因我也不知道
技术图片

6、解析成功
技术图片

Pass-05

1、查看源码之后发现.htaccess文件也进入了黑名单,但是仔细一看并没有转换为小写,因此可以通过大写绕过
技术图片

2、解析成功
技术图片

Pass-06

1、查看源码之后虽然转化了小写,但是仔细一看并没有去除空格,因此可以通过加空格绕过,Windows下xx.jpg[空格] 或xx.jpg.这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,虽然会删除末尾的点,但是不会删除末尾的空格,因此bp抓包,上传一个.php[空格].文件即可
技术图片

2、解析成功

Pass-07

1、查看源码之后虽然首尾去空了,但是仔细一看并没有尾部去点,因此可以通过加点绕过
技术图片

2、解析成功

Pass-08

1、查看源码之后虽然尾部去点了,但是仔细一看并没有去除::$DATA,因此可以通过加::$DATA绕过,注意仅windows适用
技术图片

2、解析成功

Pass-09

1、查看源码发现代码已经写得挺完整了,但是仔细一想每个函数只会执行一次,因此可以通过加点加空格再加点来绕过黑名单,经过过滤之后还剩一个点
技术图片

2、解析成功

Pass-10

1、查看源码之后发现这里使用了str_ireplace函数使用空格替代黑名单,但是可以通过双写后缀名绕过
技术图片

2、解析成功

Pass-11

1.查看源码发现此处使用了白名单,限制只能上传jpg,png,gif格式,但是在进行move_uploaded_file前,利用$_GET[‘save_path‘]和随机时间函数拼接成文件存储路径,利用GET传入构造文件存储路径,导致服务器最终存储的文件名可控,可以利用这个点进行绕过,这里利用0x00进行截断
技术图片

2、首先将php的版本调至小于5.3.4
技术图片

3、然后查看php.ini配置文件中的magic_quotes_gpc是否为OFF
技术图片

4、上传后缀为jpg的木马文件后抓包

5、在save_path后增加木马文件名和%00,此时就可以进行php解析了
技术图片

6、解析成功

Pass-12

1、查看源码,此处与Pass-11相似,不同的是请求方法改成了POST方法,原理都是一样的
技术图片

2、不过需要注意的是两种方法的截断有点区别,%00通过get方式传递到服务器会被自动解码,所以就变成了ascii码中数值0对应的那个字符(null),这才能达到截断的目的,但是如果是通过post方式的话,加入%00不会被服务器解码,只会原样被参数变量接收,所以这里要通过修改post数据的十六进制来达到截断的目的

3、同样抓包,增加木马文件名和a,此处a只是为了定位
技术图片

4、点击上方的Hex查看十六进制,找到phpa的十六进制数,将a的十六进制改成00
技术图片

5、点击Go,发现木马已写入
技术图片

6、解析正常
技术图片





















以上是关于upload-labs闯关04-12的主要内容,如果未能解决你的问题,请参考以下文章

文件上传及upload-labs闯关

打不开upload-labs

个人 upload-labs 通关总结持续更新中

Upload-Labs上传绕过

upload-labs

upload-labs通关记录