赞
踩
目录
最近偶然间接触到了upload-labs这个靶场,练了一下发现还挺有意思的,包含了大量文件上传的漏洞,有些关卡的解法也跟看到的一些博客有一些出入,故记录一下心得体会。
尝试直接上传个木马上去,发现有白名单,只支持一些图片格式
点击查看提示,发现只是在前端用js做了一些限制
以火狐浏览器为例,在输入网址的地方输入about:config,进到配置界面,找到JavaScript的禁用设置,直接改成禁用,如图所示
然后再重新上传webshell,发现上传成功
方法二:按f12,进入开发者模式,找到上传文件这一行的前端代码,发现有一个事件触发,这就是检测文件格式的函数啦,把红框框起来的代码删掉,就能上传成功了。
查看关卡的提示和源代码,发现代码的前后端都有校验,并且采用的是对MIME类型的检查
所以这里开代理用bp抓个包,找到响应头中的数据类型字段,把这个改成图片的mime类型
如图是改完的
放行,上传成功
查看关卡提示和源码,发现采用了黑名单模式,禁止脚本文件的上传
更改成他的等价拓展名,再次尝试上传,发现成功了,但是打开中国蚁剑,尝试和上传的脚本通信,还是失败,所以我们直接去改Apache的配置,这里我使用的是Apache24,在conf文件夹里找到httpd.conf文件,这里需要对Apache的架构和配置有一定了解,找到IfModule mime_module模块,在里面增加一行专门解析php文件及其拓展名的代码,如图所示
再次上传脚本,打开中国蚁剑,可以看到成功取得服务器权限
查看关卡提示和源码,发现这一关把所有的拓展名都上了黑名单
呃呃,真难搞啊,这里我们用一个Hypertext Access配置脚本来试试吧,这里我们打开一个记事本,然后把准备上传的脚本的后缀改成我的名字吧[呵呵][呵呵]
然后把这个.htaccess文件上传,再把之前的php脚本上传
打开中国蚁剑,发现连接成功。
老规矩查看关卡源码和提示,发现把我们上一关用的超文本给禁用了,不知道大家发没发现一个规律,其实只要查看最新一关和上一关有什么不一样的地方,就大概知道怎么解了[呵呵]。
系统没有对文件名的大小写做防护,这也意味着这一关上传文件是大小写敏感的,然而后端运行Windows系统却是大小不敏感的[呵呵],所以我们直接把脚本的后缀改为大写即可上传成功。
查看关卡源码和提示,审计下源码,发现缺少关于空格的防护,我们把本机php的版本给降低,一般建议大家把电脑的环境配置齐全,这边推荐一个好用的免费小工具,phpstudy,在我的第一篇博客应该有介绍,这个工具的优点就是配的快,快速切换各种版本,对初学者比较友好,当然如果你是高手可以忽略这个工具[呵呵]。
将PHP版本改到5.2.17nts,在脚本后缀结尾处加空格,上传,发现能成功,但这时候中国蚁剑连接又连不上,这时候我们把PHP版本改回来就又可以连上了。
点绕过,使用bp抓包,在上传的文件后缀名上加 “ . ” 即可上传成功。
流绕过,在Windows系统中,$DATA数据流默认不显示,抓包,在文件后缀添加::$DATA。
查看源码发现,系统会按顺序删除 “ . ” 和 “ ” ,所以我们在文件后缀加上“. .”即可上传成功。
在网上找了另一个解法,但是不太懂,有懂的大佬可以帮忙解释一下
抓包后把文件后缀改为phpp:.jpg,放行之后再改为sh.>>>,也能上传成功。
审计源码,发现系统会把所有黑名单上的后缀名自动替换为空格,所以 用特殊办法绕过一下,将后缀名改成.pphpp,即可上传成功。
注意一下PHP版本之间的切换。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。