ADS带来的WEB安全问题并不是什么新鲜事了,几个月前偶然的原因和好友Rstar一起系统地做了很多测试,Rstar前段时间已经在PKAV和Wooyun上公开过,我把当时写的paper也发出来吧,希望能有更多的攻击场景被发掘。一个下午赶出来的paper,部分语句还有问题,之后一直没时间改了,将就看吧 ,slide因为涉及公司内容就暂时不放出来了:)



NTFS ADS带来的WEB安全问题

Author:Rstar && pysolve



NTFS ADS简介

NTFS流全称为NTFS交换数据流(NTFS Alternate Data Streams),ADS的诞生是为了兼容Hierarchical File System 。HFS—分层文件系统,是由苹果公司推出的文件系统,其工作模式是将不同数据存在不同的分支文件,文件数据存放在数据分支而文件参数存放在资源分支。类似的,NTFS流使用资源派生来维持与宿主文件相关的信息。ADS有点类似文件的属性信息一样,依附于文件的传统边界之外。

来看一个ADS的实例,通常这个例子在讲到ADS的地方都会提到。新建一个文件,命名为test.txt,该文件即是宿主文件;打开文件,输入内容”test”。在该目录下执行命令 echo ”This is astream” > test.txt:stream.txt 建立后cmd不会有任何提示且对于Windows资源管理器来说宿主文件没有发生任何变化(包括其大小、修改时间等)。这是因为windows下不是所有程序都能支持ADS导致的。同样dir、type等也不能看到。Notepad能够部分支持ADS,可以打开test.txt:stream.txt,但notepad也不能完全支持,另存为时会出现参数错误。

注:

1、修改宿主文件的内容不会影响流的内容。

2、修改流的内容不会影响宿主文件的内容。

MSDN上给出了一个完整的流的格式,如下:<filename>:<stream name>:<stream type>

filename          宿主文件的文件名

stream  name   流名

stream  type     流类型