Loading
0

NetGear R系列多款路由器远程命令注入漏洞分析

按照同样的思路,我找到了httpd中有两处函数调用可能调用到了系统函数,一处是popen,另一处是system。
.plt:0000E6BC ; FILE *popen(const char *command, const char *modes)
.plt:0000E6BC popen                                   ; CODE XREF: sub_73F40+3D4_x0019_p
.plt:0000E6BC                                         ; sub_95B44+1BC_x0019_p
.plt:0000E6BC                 ADRL            R12, 0x1086C4
.plt:0000E6C4                 LDR             PC, [R12,#(popen_ptr - 0x1086C4)]! ; __imp_popen
.plt:0000D69C ; int system(const char *command)
.plt:0000D69C system                                  ; CODE XREF: sub_147A0+D2C_x0019_p
.plt:0000D69C                                         ; sub_147A0+D94_x0019_p ...
.plt:0000D69C                 ADRL            R12, 0x1076A4
.plt:0000D6A4                 LDR             PC, [R12,#(system_ptr - 0x1076A4)]! ; __imp_system
为了分析执行路径,我用了xrefs的功能,先来看看popen的。

执行路径比较简单,再来看看system的。

我整个人都崩溃了……后来我想到用cgi-bin搜索一下关键字,结果真的还有收获。
.text:000110E8 off_110E8       DCD aCgiBin             ; DATA XREF: sub_100A0+1808_x0019_r
.text:000110E8                                         ; "cgi-bin/"
通过这种方法,我找到了比较外层的函数调用sub_100A0,随后终于抓出了一条线。

这次对我这样对路由比较感兴趣的人来说也是一次学习的过程,下面进入对这个漏洞的详细分析。
0x04 命令注入漏洞分析
首先我们下载R系列路由器的固件。
下载地址:http://support.netgear.cn/doucument/detail.asp?id=2251
然后用binwalk -eM来迭代解压这个固件,获得这个固件的squashfs文件系统,这里生成的.squashfs文件需要用7zip来解压。

生成之后用IDA打开/usr/sbin/httpd,跟入sub_100A0函数,在这个函数中有一处调用。

return sub_19600((const char *)v9, v246, v4);
这里会调用到sub_19600,其中涉及到三个参数,这里v9是我比较关心的,v9是什么呢,在sub_100A0函数中其实比较容易猜测。
if ( !strstr((const char *)v9, "unauth.cgi")
&& !strstr((const char *)v9, "securityquestions.cgi")
&& !strstr((const char *)v9, "passwordrecovered.cgi")
&& !strstr((const char *)v9, "userlogin.cgi")
&& !strstr((const char *)v9, "multi_login.cgi")
&& (strncmp((const char *)v9, "cgi-bin/", 8u) || strstr((const char *)v9, "RMT_invite_")) )
在这个函数中涉及到大量的strstr子字符串比较,其中比较的内容就是某个常量和v9变量,猜测v9变量就是url的值,这里我们就假设v9的值就是exp的定义  /IP-Addr/cgi-bin/;killall$IFS’httpd’

分页阅读: 1 2 3 4 5 6 7 8 9
【声明】:8090安全小组门户(https://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。