善良是很珍贵的,但善良没有长出牙齿来,那就是软弱
最近在火线看的文章
发现这个思路14年左右就已经用在dedecms找后台上了,只不过我现在才知道,写个博客记录一下
此特性只能在Windows环境下使用,因为 Windows 在搜索文件时使用到了 FindFirstFile 这一个 Winapi 函数
利用场景
知道文件所在目录,但不知道文件名的情况下来包含我们的马
假如某处存在文件包含漏洞,我们需要上传一个我们自己的文件来包含,但如果上传的文件经过了重命名,且没有返回文件名,就可以使用此技巧包含
利用方法
我们可以将文件名未知部分的字符串使用 <
或 >
代替,但是需要注意:一个 <
或 >
只能代表一个字符
如果我们上传的马子为 shell.php,那么请求 s<
或者 s>
都是访问不到文件的。需要使用 s<<
才能访问到,含义为继续往下搜索
演示
文件包含漏洞:index.php
webshell文件:shell.php
我们使用上述姿势包含 shell.php
文件
测试发现,在使用 <<
去匹配时,会优先匹配值最小的文件名称
如下文件名:
我们直接匹配 2<<
会匹配到最小的 202033333333333333333333.php
文件
如果需要匹配2022文件,需要增加文件的准确度,也就是 2022<<
完结
此特性并不是只有文件包含函数才可用,事实上还有很多函数也一样可利用这个特性,我们在进行代码审计的时候也可以注意一下,说不定就能挖出意想不到的漏洞