0x00 IIS短文件名漏洞原理
为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名。
在Windows下查看对应的短文件名,可以使用命令dir /x
。
dir /x 查看显示结果,对应的文件名 444444~1.HTM 444444~2.HTM该短文件名有以下特征:
(1)只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增(444444~2.HTM),如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
(2)后缀名最长只有3位,多余的被截断。
我们可以在启用.net的IIS下暴力列举短文件名,原因是:
(1)访问构造的某个存在的短文件名,会返回404;
(2)访问构造的某个不存在的短文件名,会返回400。
0x01漏洞危害
(1)猜解后台地址
(2)猜解敏感文件,例如备份的rar、zip、.bak、.SQL文件等。
(3)在某些情形下,甚至可以通过短文件名web直接下载对应的文件。比如下载备份SQL文件。
举个例子,有一个数据库备份文件 backup_20180101.sql ,它对应的短文件名是 backup~1.sql 。因此攻击者只要暴力破解出backup~1.sql即可下载该文件,而无需破解完整的文件名。