MENU

短文件漏洞-iis短文件名漏洞

November 14, 2018 • Read: 978 • 安全测试阅读设置

为啥要写这个呢?
来自历史的拷问

什么是短文件名?

短文件名是windows为了兼容MS-dos下的一种命名方式。
例如:
用cmd命令提示符使用:dir

这里我们可以看到文件名正常。

然后我们使用:dir /x 查看短文件名

我们可以看到红框中的111112~1.TXT,这就是短文件名

我们可以使用111112~1.TXT直接打开这个文件

短文件名命名方式

知道了什么是短文件名,再看如上文所贴图,图中文件1111123111.txt的短文件名就是111112~1.TXT

Windows短文件名8dot3命名规则:

  • 符合DOS短文件名规则的Windows下的长文件名不变
  • 长文件名中的空格,在短文件名中被删除
  • 删除空格后的长文件名,若长度大于8个字符,则取前6个字符,后两个字符以~#代替,其中 # 为数字,数字根据前六个字符相同的文件名的个数顺延。若个数超过10个则取前5个字符,后三个字符以~##代替,其中 ## 为两位数字,若个数大于100也依此规则替换。
  • 对使用多个.隔开的长文件名,取最左端一段转换为短文件名,取最右一段前三个字符为扩展名
    -如果存在老 OS 或程序无法读取的字符,用_替换

短文件名漏洞的要求

  • windows+IIS 可以按照规律猜文件名
  • apache+windows 某下情况下突破dir限制,可以下载或者查看

总结

  • 短文件名也是刚刚接触到的新漏洞,不过也是一个很老的漏洞了。
  • 这漏洞也是利用windows自身的特性,比如我们在上传文件时,利用windows特性创建特殊的文件,绕过waf等一些限制
配合操作系统文件命令规则
(1)上传不符合 windows 文件命名规则的文件名
  test.asp.
  test.asp(空格)
  test.php:1.jpg
  test.php::$DATA
  shell.php::$DATA…….
会被 windows 系统自动去掉不符合规则符号后面的内容。
(2)linux 下后缀名大小写
在 linux 下,如果上传 php 不被解析,可以试试上传 pHp 后缀的文件名。

参考:
一探短文件名
文件上传-多绕过姿势

Last Modified: November 18, 2018
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

2 Comments
  1. Lunatic Lunatic

    可以啊,厉害

    1. @Lunatic好菜呀。