当前位置:   article > 正文

uploads-labs 21关通关攻略(上)_upload-labs 21关

upload-labs 21关

目录

前言

 Pass-01

Pass-02

Pass-03

Pass-04

Pass-06

Pass-07

Pass-08

Pass-09

Pass-10

Pass-11

总结


前言

最近偶然间接触到了upload-labs这个靶场,练了一下发现还挺有意思的,包含了大量文件上传的漏洞,有些关卡的解法也跟看到的一些博客有一些出入,故记录一下心得体会。


 Pass-01

尝试直接上传个木马上去,发现有白名单,只支持一些图片格式

点击查看提示,发现只是在前端用js做了一些限制

以火狐浏览器为例,在输入网址的地方输入about:config,进到配置界面,找到JavaScript的禁用设置,直接改成禁用,如图所示

然后再重新上传webshell,发现上传成功

方法二:按f12,进入开发者模式,找到上传文件这一行的前端代码,发现有一个事件触发,这就是检测文件格式的函数啦,把红框框起来的代码删掉,就能上传成功了。

Pass-02

查看关卡的提示和源代码,发现代码的前后端都有校验,并且采用的是对MIME类型的检查

所以这里开代理用bp抓个包,找到响应头中的数据类型字段,把这个改成图片的mime类型

如图是改完的

放行,上传成功

Pass-03

查看关卡提示和源码,发现采用了黑名单模式,禁止脚本文件的上传

更改成他的等价拓展名,再次尝试上传,发现成功了,但是打开中国蚁剑,尝试和上传的脚本通信,还是失败,所以我们直接去改Apache的配置,这里我使用的是Apache24,在conf文件夹里找到httpd.conf文件,这里需要对Apache的架构和配置有一定了解,找到IfModule mime_module模块,在里面增加一行专门解析php文件及其拓展名的代码,如图所示

再次上传脚本,打开中国蚁剑,可以看到成功取得服务器权限

Pass-04

查看关卡提示和源码,发现这一关把所有的拓展名都上了黑名单

呃呃,真难搞啊,这里我们用一个Hypertext Access配置脚本来试试吧,这里我们打开一个记事本,然后把准备上传的脚本的后缀改成我的名字吧[呵呵][呵呵]

然后把这个.htaccess文件上传,再把之前的php脚本上传

打开中国蚁剑,发现连接成功。

Pass-06

老规矩查看关卡源码和提示,发现把我们上一关用的超文本给禁用了,不知道大家发没发现一个规律,其实只要查看最新一关和上一关有什么不一样的地方,就大概知道怎么解了[呵呵]。

系统没有对文件名的大小写做防护,这也意味着这一关上传文件是大小写敏感的,然而后端运行Windows系统却是大小不敏感的[呵呵],所以我们直接把脚本的后缀改为大写即可上传成功。

Pass-07

查看关卡源码和提示,审计下源码,发现缺少关于空格的防护,我们把本机php的版本给降低,一般建议大家把电脑的环境配置齐全,这边推荐一个好用的免费小工具,phpstudy,在我的第一篇博客应该有介绍,这个工具的优点就是配的快,快速切换各种版本,对初学者比较友好,当然如果你是高手可以忽略这个工具[呵呵]。

将PHP版本改到5.2.17nts,在脚本后缀结尾处加空格,上传,发现能成功,但这时候中国蚁剑连接又连不上,这时候我们把PHP版本改回来就又可以连上了。

Pass-08

点绕过,使用bp抓包,在上传的文件后缀名上加 “ . ” 即可上传成功。

Pass-09

流绕过,在Windows系统中,$DATA数据流默认不显示,抓包,在文件后缀添加::$DATA。

Pass-10

查看源码发现,系统会按顺序删除 “ . ” 和 “   ” ,所以我们在文件后缀加上“. .”即可上传成功。

在网上找了另一个解法,但是不太懂,有懂的大佬可以帮忙解释一下

抓包后把文件后缀改为phpp:.jpg,放行之后再改为sh.>>>,也能上传成功。

Pass-11

审计源码,发现系统会把所有黑名单上的后缀名自动替换为空格,所以 用特殊办法绕过一下,将后缀名改成.pphpp,即可上传成功。


总结

注意一下PHP版本之间的切换。

请大家csdn关注加载中喵,持续为您带来精彩内容,谢谢喵!!


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/544389
推荐阅读
  

闽ICP备14008679号