您现在的位置:首页 >> 电脑安全 >> 漏洞补丁 >> 内容

漏洞预警:apache mod_rewrite模块命令执行详细分析附POC

时间:2013/6/21 10:39:24 点击:

  核心提示: 该漏洞由安全宝内部安全研究员分析。分析如下:最近看到很多安全媒体都在介绍Apache日志文件漏洞,可能执行任意代码,作为安全研究人员看到执行任意代码,当然是需要高度敏感,因为它意味着攻击者...

该漏洞由安全宝内部安全研究员分析。分析如下:

 

最近看到很多安全媒体都在介绍”Apache日志文件漏洞,可能执行任意代码”,

作为安全研究人员看到”执行任意代码”,当然是需要高度敏感,因为它意味着攻击者可以秒杀你的服务器,再加之Apche的使用范围之广,感觉危害还是很大,所以本着研究精神决定对这个漏洞进行下分析,


我们先来看下官方的介绍:

 


 

mod_rewrite:确保客户端写入到RewriteLog的数据是经过终端转义序列后再写入到日志文件中。(注:自己翻译的,感觉意思是应该差不多J)

 

所以这里先纠正下媒体的漏洞描述吧(估计是有人为了吸引眼球或谋利而为之),在这里先科普下,显然问题是发现在apache的mod_rewrite模块,mod_rewrite模块通过RewriteLog函数记录rewrite操作的日志,但RewriteLog函数却没有过滤,将用户的数据直接写入了LogFile里。


CVE-2013-1862的漏洞的本质:


1 RewriteLog函数没有对用户的输入数据进行终端转义字符过滤

2实质上应该是Mod_Rewrite的日志文件漏洞,而不是Apache的日志文件

 

着实有种被忽悠的感觉,不过还是决定继续分析下这个漏洞的影响:


我们先来看下最新版本中mod_rewrite.c这个文件的具体内容:

 


 

   函数首先会先读取mod_rewrite的配置文件,获取rewritelog的文件指针,然后对获取日志文件所需要变量信息,将变量数据进行终端字符转义,最后格式化写入rewitelog文件中。

 

相信到这里我们可以很清楚的这个漏洞的危害和影响了:


Ø 需要开启mod_rewrite

Ø 同时需要配置rewritelog


而这些仅仅只能将恶意数据写入到rewritelog中,关于后续的攻击就需要仁者见仁,智者见智了,不过我还是比较佩服给出这个标题的作者”Apache日志文件漏洞,可能执行任意代码”,至于作者为什么写可能执行任意代码,让我们继续解读下:


涉及的内容:


1终端转义序列

解释:转义序列(escape sequence)是一系列由ASCII转义字符(0x1B)开始的字符序列,并附带特殊的参数构成,转义序列一般原用于控制显示设备如终端,现在扩展在大多数操作系统中允许多种形式的交互。转义序列可以用于更改文本属性(颜色,宽度),移动鼠标位置,重配置键盘,更新窗口标题,或者操作打印机等。

(摘自赛迪网,个人感觉比较准确的中文解释,具体英文内容,可以参考附注中的参考链接)


2 Linux单引号、双引号和反引号


单引号

目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出.


双引号

目的: 为了包含文字或者函数段. 除了本身,反引号内的函数,$开头的变量和\开头反转换的字符外, 其余都是直接输出.


反引号

目的是为了在双引号内保持函数转换. 但单引号内其无作用.


分析了这么多,为了让自己意淫下,同时也为了更多基友共同意淫,正所谓独乐乐不如众乐乐,这里自己给出一些善意的POC: www.it165.net


Friendly POC:

;PS1%3d"%5c%5b%5ce%5d0%3bBe+Hacked%5ca%5c%5dhacker%40%5ch%3a%5cw%5c%24"%73%75;

 


 

当管理员对这些日志进行进行SHELL命令操作的时候,如cat或echo等,利用分号分割就可以运行组合命令,如下图:

 


  不写了,相信大家对这个漏洞应该了解了,其实利用反引号就可以执行命令,这类漏洞适合APT攻击。

 

作者:电脑维修助手 来源:不详
相关评论
发表我的评论
  • 大名:
  • 内容:
  • 电脑维修知识网(www.dnwxzs.com) © 2017 版权所有 All Rights Reserved.
  • Email:pcweixiu@tom.com 站长QQ:20567788 冀ICP备11008166号 冀公网安备 13050002001002号
  • 技术支持与报障: 电脑维修知识网