-
-
[原创]某SCADA的远程代码执行漏洞挖掘与利用
-
发表于:
2020-12-4 10:23
9688
-
前言
近年来网络安全形势日渐严峻,国内外都开始对工控安全越来越重视,而工控领域由于常年来对安全的忽视,导致暴露出数量惊人的严重安全漏洞,更为严重的是,相当一部分厂商即使在漏洞披露出来后也没有能力去修复。本文从实战出发,通过一个国产的SCADA软件作为例子,来介绍对工控软件的漏洞挖掘方法,希望通过这篇文章能够让越来越多的安全研究员重视工控领域的安全。
漏洞挖掘
先简单画一个界面,快速组态一个工程并且运行后,可以发现该软件提供web接口去访问该操作界面。

局域网访问是默认开启的:

这部分的逻辑主要是NodeJS编写的,这种情况下,可以通过传统的web漏洞挖掘思路去分析存在的安全问题,例如XSS,CSRF,敏感信息泄露,越权等。(通过这个思路在这个软件挖到了相当多的漏洞)

分析其和服务端通信的数据包,可以发现还有一部分操作逻辑走的websocket协议,而这部分最后数据会直接传到一个用c/c++编写的程序中处理,于是想到分析该软件数据处理存在的问题。

不出意外,IDA分析后的几分钟之内直接定位了一个基于栈的缓冲区溢出问题。漏洞出在0x1功能码中,会将json中的value的值直接拷贝到栈上,导致缓冲区溢出:

漏洞利用
[注意]看雪招聘,专注安全领域的专业人才平台!