安全黑客
当前位置:安全黑客文章资讯安全资讯安全新闻
日期:2019-01-20 23:25:00  来源:本站整理

TP-Link TL-R600VPN远程代码执行漏洞分析[安全新闻]

赞助商链接



  本文“TP-Link TL-R600VPN远程代码执行漏洞分析[安全新闻]”是由安全黑客为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:


 
一、简介
TP-Link最近修补了TL-R600VPN路由器中的三个漏洞,固件版本1.3.0。在与TP-Link协商后,思科公开披露这些漏洞,并给出解决方案,本篇文章对这些漏洞的内部工作方式进行深入研究,并给出概念验证的方法。
 
二、背景
TL-R600VPN是一款由TP-Link生产的小型办公室/家庭路由器,该路由器在芯片上集成了Realtek RTL8198系统,该芯片使用了Lexra开发的MIPS-1架构的分支版本,除了一些存储和对齐指令不同,其它指令集基本相同。Lexra中并没有LWL, SWL, LWR和SWR等指令的说明,这些专有指令通常在MIPS-1架构编译程序时使用。在Lexra中使用会产生段错误。
有关Lexra MIPS与MIPS-1两者之间更多的比较信息,请参考文章The Lexra Story和MIPS-1 patent filing。
 
三、漏洞细节
当该设备的HTTP服务器处理对/fs/目录的请求时会触发漏洞,该漏洞允许未经身份验证的攻击者远程执行载荷代码。
当访问/fs/目录中的以下任何页面时,应用程序会错误的解析HTTP标头。
http:///fs/helphttp:///fs/imageshttp:///fs/frameshttp:///fs/dynaformhttp:///fs/localiztion (NOTE: this is not a typo)
在函数”httpGetMimeTypeByFileName”中,Web服务器尝试解析所请求页面的文件扩展名以确定mime类型,在这个过程中,服务器会使用strlen()函数计算所请求页面名称的长度,在堆中查找并匹配该字符串末尾,然后读取文件扩展名,遇到字符”.”(0x2e)结束。

在请求页面上应始终包含扩展名,以防止解析错误。下面是相关例子,在/web/dynaform/css_main.css页面的GDB字符串输出中,可以看到解析后的文件扩展名为’css’。

但是,如果我们请求一个易受攻击的页面,如下所示,我们可以看到解析的URI并不包含字符”.”(0x2e),因此,应用程序会继续向后搜索。这导致可以搜索到一些有效负载。

如下所示,在对/fs/help页面的GDB字符串输出中(0x67a170),并没有解析到文件扩展名。

当遇到字符”.”(0x2e)后,会调用toUpper()函数处理提取到的字符串,然后通过存储指令将该操作的结果写入基于堆栈的缓冲区,如下所示:

程序继续执行,在运行httpGetMimeTypeByFileName函数后,堆栈上会保存返回值和5个寄存器的数值,当该漏洞被利用时,这些值会被覆盖。

在该函数的结尾,会将数据复制到缓冲区并覆盖堆栈上的原始数据,通过弹出堆栈,用户可以控制返回地址,也意味着用户能够在HTTPD进程的上下文中执行远程代码。
toUpper()函数分析
在解析HTTP标头时,设备会迭代每个字节,构建缓冲区。直到匹配到0x2e。随后将调用toUpper()函数,并把缓冲区作为参数。该函数是将缓冲区的每个ASCII字符转换为大写。

在用HTTP标头发送shellcode时会产生问题,因为会调用toUpper()函数,导致阻止使用任何小写字符,如下所示:

我们通过查看httpGetMimeTypeByFileName函数结尾处最后一次跳转前寄存器的值,可观察到标头的字符’a’(0x61)已经转换为大写(0x41)。如下图所示:

通过对寄存器的观察,我们可以在toUpper()函数被调用后,找到一些可预测的数据及位置。
虽然会影响httpGetMimeTypeByFileName函数结尾处的最后一次跳转,但我们可以通过检查堆栈上的数据,找到大写的标题数据(包括有效负载)存储位置。

相比之下,如果我们检查寄存器$s5指向的位置所存储的数据,我们会看到原始数据头仍然可访问。

[1] [2]  下一页


  以上是“TP-Link TL-R600VPN远程代码执行漏洞分析[安全新闻]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • TP-Link TL-R600VPN远程代码执行漏洞分析
  • 家用路由器TP-LINK-PPoE宽带衔接设置办法
  • 本文地址: 与您的QQ/BBS好友分享!

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    免责条款 - 广告合作 - 下载声明 - 欢迎投稿 - 友情连接 - 网站地图 -
    Copyright © 2012-2013 www.110hack.com. All Rights Reserved .