前言
以下都是在实战运用到的小技巧,针对性较强,仅供参考~
介绍下不符合windows文件规则有哪些:
shell.php. ----------文件名后加点‘.’
shell.php(空格) ----------文件名后加括号空格
shell.php:1.jpg ----------文件名后加冒号':'
shell.php::$DATA ----------文件名后加NTFS ADS特性::$DATA
shell.php::$DATA...... ----------文件名后::$DATA......
会被windows系统自动去掉不符合规则符号后面的内容。
下面结合在实际渗透测试中应用的2个例子。
例一:
例一为一个文件上传点,网站采用了黑名单校验,绕过限制上传后门文件。
在此处上传点,上传的文件以url中的文件名进行保存,且服务器使用了黑名单,对一些危险文件后缀都进行了过滤。
利用NTFS ADS特性在文件后缀名jsp加::$DATA......成功绕过了黑名单限制。
由于服务器使用了windows系统,会自动去掉不符合规则符号后面的内容,因此成功打到一个jsp的shell地址。
例二:
例二为一个文件下载url地址,网站对第一个路径地址和下载的文件后缀名进行了限制,绕过限制进行任意文件下载。
系统对filePath的第一个目录名称进行限制。
可以选择一个正常网站目录,在它后面使用回溯符../,即可绕过下载目录的限制。
成功查看到了c盘下的默认文件。
尝试下载网站的index.html文件,发现无法下载成功。
发现代码对url中下载文件的后缀名进行了限制,一些敏感的文件都无法下载。
使用同样都方法,成功绕过限制,可以进行任意文件下载。
总结
成功利用widows系统文件命名规则绕过限制进行了任意文件上传和任意文件下载。
关注我们
我是Tide安全团队的nuoyan,对web安全感兴趣的小伙伴可以关注或加入我们。Tide安全团队(http://www.TideSec.net):