关数(通关特征)
PASS-06(大小写绕过上传)
关卡分析:
有些程序编写上传点过滤时会过滤常见后缀(黑名单),如php/asp/aspx/jsp/phtml等,如果为对上传 后缀进行小写转换,那么我们即可通过文件后缀名大小写方式进行绕过上传webshell。(应用于 Windows操作系统)
思路:我们查看源码,发现,定义了一个数组,数组中$deny_ext函数将许多文件后缀都过滤了,包括我们之前提到的.htaccess、.ini。但是仔细观察,发现有“pHp”等,没有“Php”等,大小写不全,由于Windows不像Linux系统,对大小写的校验严格,所以我们可以利用这个缺陷进行过关。
注:为什么之前的关卡不行呢?因为之前的关卡都有 $file_ext = strtolower($file_ext); 这条语句将其转换为小写。
绕过演示:
1.创建文件:shell.PHp
上传文件shell.PHp
右键查看图片,打开网页。
http://127.0.0.1/BC/upload-labs-master/upload/202308010651509134.PHp
PASS-07(Windows特性绕过-[" "] 空格绕过)
关卡分析:
利用window对于文件和文件名的限制,以上字符放在结尾时,不符合操作系统的命名规范,在最后生成文件时,字符会被自动去除。
绕过演示:
正常我们保存文件时,如果在“shell.jpg.”后面加一个“.”,会被过滤掉这个点,空格也是一样。
上传文件,抓包。在shell.php后加空格。
右键查看图片,打开网页。
http://127.0.0.1/BC/upload-labs-master/upload/202308010653593761.php
解析成功!
PASS-08(Windows特性绕过-["."] 点绕过)
关卡分析:
同pass-07关原理相同。
绕过演示:
上传文件,抓包。在shell.php后加点。
右键查看图片,打开网页。
解析成功!
PASS-09(NTFS流::$DATA绕过)
关卡分析:
::$DATA 表示文件的默认数据流,在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当 成文件流处理,上传时将一个有害文件的文件名改为 evil.php::$DATA 。此时,Windows 将会忽略后 缀 .php ,而使用 ::$DATA 后缀,从而绕过服务器端的文件类型检测,成功上传恶意文件到服务器端。
绕过演示:
上传文件,抓包。在shell.php后加::$DATA。
右键查看图片,打开网页。
注:访问时出现如下页面,要去掉::$DATA
解析成功!
PASS-10:([". ."] 点空格点绕过)
关卡分析:
同07,08关相同。
绕过演示:
上传文件,抓包。在shell.php后加点空格点。
(谢谢大家!欢迎提出批评和建议!你的支持是我持续更新的巨大动力!)