网络安全检测与防护技术
国家地方联合工程研究中心深圳分中心

靶场科普 | Goahead远程命令执行(cve-2017-17562)

发表时间:2021-08-06 13:51

本文由“网络安全检测与防护技术国家地方联合工程研究中心深圳分中心——东塔网络安全学院”总结归纳


靶场介绍

Goahead远程命令执行(cve-2017-17562)


今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:“Goahead远程命令执行(cve-2017-17562)”。


一、实验介绍

1.漏洞描述

GoAhead Web Server 广泛应用于嵌入式设备中,最近其出现了一个高危漏洞,在开启CGI的情况下,可以远程代码执行,据此本文简要分析了该漏洞详情,并在某款路由器上成功复现,反弹shell。

2.漏洞原理

1)漏洞产生于goahead/src/cgi.c:cgiHandler中,程序遍历了用户访问时所带的参数,验证如果参数不为REMOTE_HOST或HTTP_AUTHORIZATION,则将其存储至envp数组。

2)该数组将作为接下来cgi调用的环境变量。可以看出正式这里对于参数的过滤不全,导致了用户可以修改CGI程序的LD_PRELOAD环境变量,致使漏洞存在。本文就不在赘述上述代码。

3.漏洞分析

这个漏洞出现在goahead/src/cgi.c:cgihandler函数中,它使用http请求参数中的键值对来初始化新进程的envp参数,在此处只对“REMOTE_HOST”和“HTTP_AUTHORIZATION”参数进行了判断,其他参数全部默认信任。


二、实验目的

1.了解goahead远程命令执行(cve-2017-17562)漏洞简介

2.了解goahead远程命令执行(cve-2017-17562)漏洞的产生方式

3.掌握检测修复goahead远程命令执行(cve-2017-17562)漏洞技术


三、实验步骤

1.打开实验连接,查看实验环境,编译GoAhead及用来测试的CGI文件,行GoAhead Web服务器;

2.获得可以利用的payload

3.使用curl发送以下payload到目标服务器

4.运行结果


四、修复建议

1.检查当前应用程序版本,如果版本小于3.6.5,升级至最新版本或者及时更新官方补丁。

2.官方补丁修改161行左右的if内,除了过滤REMOTE_HOST和HTTP_AUTHORIZATION,添加过滤IFS、CDPATH、PATH和以LD_开头的字符串。


速度登录https://labs.do-ta.com/ GET起来

现在注册,立得50积分哟 ✌