360CERT:GoAead RCE(CVE–2017–17562)预警分析
来源:互联网 发布:java web统计登录次数 编辑:程序博客网 时间:2024/05/16 08:47
0x00 背景介绍
12月12日,MITRE披露一枚GoAhead的漏洞,编号为CVE-2017-17562,受影响的GoAhead,如果启用CGI动态链接,会有远程代码执行的危险。GoAhead广泛应用于嵌入式设备中。360CERT经过评估,确认该漏洞属于高危,建议用户尽快进行修复。
0x01 技术细节
定位到漏洞位置:cgi.c:cgiHandler(),其中envp分配一个数组,并由HTTP请求参数中的键值对进行填充,这个过程中只是对REMOTE_HOST和HTTP_AUTHORIZATION进行过滤,导致攻击者可以利用其他cgi进程的任意环境变量。
envp填充完成后,会通过launchCgi进行调用,进行启动cgi进程。
0x02 漏洞验证
上面也提到了,因为过滤不完善,恶意的envp被传入launchCgi进行执行,这时我们需要知道cgiPath(我们的payload路径)。这个问题不大,Linux procfs文件系统,可以使用LD_PRELOAD=/proc/self/fd/0进行引用stdin,他将指向我们写入的临时文件。在HTTP请求时加入?LD_PRELOAD=/proc/self/fd/0便可。
正常的效果如上图所示。但是有一个问题,攻击的时候我们需要指定一个cgi进程执行我们的LD_PRELOAD,这无疑提高了该漏洞的攻击成本。
0x03 影响范围
根据360CERT的QUAKE全网资产检索系统评估,全网有数百万设备运行着GoAhead服务,考虑到嵌入式设备更新的滞后性,受该漏洞影响的设备较广。
0x04 修补建议
360CERT建议使用GoAhead产品的用户,检查当前应用版本,如果是易受攻击版本,请尽快更新相关补丁。
0x05 时间线
2017年12月12日 漏洞披露
2017年12月18日 360CERT进行跟进分析
2017年12月19日 360CERT发布预警
0x06 参考链接
https://www.elttam.com.au/blog/goahead/?t=1&cn=ZmxleGlibGVfcmVjcw%3D%3D&refsrc=email&iid=00814eaead1646519e0079bc88160394&uid=854872895356411904&nid=244
https://security-tracker.debian.org/tracker/CVE-2017-17562
https://vulners.com/exploitdb/EDB-ID:43360
- 360CERT:GoAead RCE(CVE–2017–17562)预警分析
- Nginx range过滤器整形溢出漏洞 (CVE–2017–7529)预警分析
- Zabbix SQL Injection/RCE – CVE-2013-5743
- Zabbix SQL Injection/RCE – CVE-2013-5743
- CVE-2016-4977 RCE in Spring Security OAuth漏洞分析
- Jenkins RCE CVE-2016-0788分析及利用
- 漏洞预警+Samba远程代码执行漏洞(CVE-2017-7494)
- mongodb – SSJI to RCE
- Struts2-045分析(CVE-2017-5638)
- Apache Tomcat RCE if readonly set to false (CVE-2017-12617)
- CVE-2012-1823(PHP-CGI RCE)的PoC及技术挑战
- [转]Shadowsocks RCE分析
- CVE-2017-12617漏洞分析
- Oracle的酒店管理平台RCE漏洞以及持卡人数据泄漏(CVE-2016-5663/4/5)
- 【高危漏洞预警】CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052)
- 腾讯反病毒实验室预警:CVE-2017-11882漏洞最新利用方法
- Android 5.0屏幕录制漏洞(CVE-2015-3878)威胁预警
- PHPMailer任意文件读取漏洞分析(CVE-2017-5223)
- MySQL is running but PID file could not be found(解决方法)
- java设计模式都有哪些?
- 【转载】如何搭建一个快速的分布式计算平台?Parallel python提供了简易的方式来实现此目的。
- js(二)-- 类型的转换
- python列表推导式
- 360CERT:GoAead RCE(CVE–2017–17562)预警分析
- 数据挖掘学习------------------4-分类方法-4-神经网络(ANN)
- C++标准库总结
- Android打包失败原因
- 机器学习–使用numpy随机打散训练数据
- js读取usb扫码枪数据
- ansible管理windows实践
- SpringMvc和servlet简单对比介绍
- 阿里云CloudDBA