NTFS流简单介绍:

	NTFS因为它的稳定性 强大的功能 以及它所提供的安全性而成为一种更优越的文件系统,NTFS交换数据流(ADSs)是为了和Macintosh的HFS文件系统兼容而设计的,它使用资源派生(resource forks)来维持与文件相关的信息,比如说图标及其他的东西。创建ADSs的语法相对比较简单和直接,比如说创建和文件myfile.txt相关联的ADSs,只需简单的用冒号把文件名和ADSs名分开即可如:

D:\ads>echo This is an ADS > myfile.txt:hidden

	那么这种问题和脚本安全有什么关系呢?80sec的xy7提供了如下的测试代码:

/*-----------------------------------------------------------------------------------------------------------------
<?php
$fp = fopen ("$_GET[a].txt", "a");
fwirte($fp,'80sec.com');
?>
-------------------------------------------------------------------------------------------------------------------*/
当提供一个80sec.php?a=x.php:的时候,在windows系统下会发现在当前目录创建了一个x.php文件,但是内容为空:)但是实际上这已经扰乱了程序的逻辑,生成php文件就是不允许的事情。那么到底怎么回事呢?用记事本执行
notepad x.php:.txt
就可以看到真实的文件路径。那么这个路径在其他文件操作函数是否可用呢?经过测试,像file_exists,include都可以使用这个路径,尽管这个路径在文件目录和dir命令下不可见,并且测试发现,在普通文件名里不允许的<>以及"等字符,在这个路径里是允许存在的,而这些字符就可能在文件操作时不注意而引发一些安全问题。 另外可以看到,这种文件可以很容易在windows系统里隐藏自己的某些代码,譬如将自己的后门代码隐藏在某个php文件里,然后可以在另外一个地方include进来执行,并且这种隐藏在脚本级别是无法查看的,必须借助相应的工具才能查看。 由于文件名的特殊性,可能可以bypass一些文件上传的安全检查,但是经过测试,我们发现并不能在apache和iis里对这种类型文件进行访问,所以即使能上传成功也许也并不能直接访问作为代码直接执行:)但是不排除一些windows下的其他http server能正确处理好这种文件名,而不发生问题,这种问题应该是windows的问题,所以在像其他脚本如asp里也应该是一样存在的。

NTFS数据流和web安全的更多相关文章

  1. 实验吧-杂项-你知道他是谁吗?(转盘密码、NTFS数据流检测及导出)

    刚看到的时候听懵,没注意到重点,其实很多时候题目中的细节就是给我们线索的,所以审题和思考是很重要的. 在没做到点上的是,也做了一点努力,没有效果,科普一下这个人((*^▽^*))图片上是托马斯.杰斐逊 ...

  2. UNCTF杂项题Hidden secret 之NTFS交换数据流隐写

    ---恢复内容开始--- 做这道题目的经历比较坎坷,题目中用于隐藏flag的jpg文件出了问题,导致不能被交换数据流隐写所以出题人换了一次题目,最后做法也换了,不过出题人一开始的考察点还是基于NTFS ...

  3. 2018湖湘杯web、misc记录

    1.题目名 Code Check 打开题目,右键发现有id参数的url,简单base64解码以后发现不是明文,说明利用了其他的加密方式,那么应该会有具体的加密方式给我们,于是试试常见的文件泄露,可以发 ...

  4. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  5. 数据库技术丛书:SQL Server 2016 从入门到实战(视频教学版) PDF

    1:书籍下载方式: SQL Server2016从入门到实战 PDF 下载  链接:https://pan.baidu.com/s/1sWZjdud4RosPyg8sUBaqsQ 密码:8z7w 学习 ...

  6. Powershell 渗透测试工具-Nishang

    Powershell 渗透测试工具-Nishang 分享到: 作者:V1ct0r 稿费:500RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 传送门 ...

  7. 2019"深思杯"山东省大学生网络安全技能大赛部分wp

    签到 载入OD查看字符串 上下左右 这道题出来的时候真的是一点思路都没有,一直以为是什么编码来着,看了大佬们的 wp 原来是画图 拿大佬的脚本: from PIL import Image im = ...

  8. MISC-极客大挑战-pen_and_apple.rar

    额   一道MISC的题目 关键词:NTFS数据流隐藏 链接:http://pan.baidu.com/s/1c14PM3A 密码:d7hn 拿到的是一个rar压缩文件,解压得到一个无节操的最近很流行 ...

  9. C++ REST SDK的基本用法

    微软开发了一个开源跨平台的http库--C++ REST SDK(http://casablanca.codeplex.com/),又名卡萨布兰卡Casablanca,有个电影也叫这个名字,也许这个库 ...

随机推荐

  1. django原生sql

    参考:http://www.jb51.net/article/128257.htm coding=utf-8 from django.core.paginator import Paginator d ...

  2. 详解SHOW PROCESSLIST显示哪些线程正在运行列出的状态

    SHOW PROCESSLIST显示哪些线程正在运行.您也可以使用mysqladmin processlist语句得到此信息.如果您有SUPER权限,您可以看到所有线程.否则,您只能看到您自己的线程( ...

  3. react+webpack+babel+eslint+redux+react-router+sass 环境快速搭建

    本文中的例子支持webpack-dev-server自动刷新及react热替换,使用了redux管理state,用react-router切换路由,用babel实现ES6语法书写,同时支持async/ ...

  4. BigDecimal常用操作

    import java.math.BigDecimal; public class BigDecimalUtil { /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 ...

  5. require.js模块化管理和加载js(按需加载)简单实例教学

    一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代 ...

  6. 360开源的pika

    http://www.360doc.com/content/16/0531/14/13247663_563808424.shtml https://github.com/Qihoo360/pika/b ...

  7. centos 查看 arp

    yum install tcpdump -y tcpdump arp :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ...

  8. log4j 输入不同日志文件

    log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实 ...

  9. centos 修改ftp目录

    # usermod -d /home/www username // # service vsftpd restart // 重启vsftpd 两步搞定

  10. HDU 1013 Digital Roots(字符串,大数,九余数定理)

    Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...