The EFM ipTIME C200 IP Camera is affected by a Command Injection vulnerability in /login.cgi?logout=1 script. To exploit this vulnerability, an attacker can send a GET request that executes arbitrary OS commands via cookie value.

shodan:

html:LS_CAMINFO_MODEL

漏洞设备版本

v1.0.12

固件获取

c200_1_012.bin

漏洞分析

通过漏洞描述可知,漏洞发生在login.cgi,使用ida打开login.cgi,搜索字符串“logout”,然后交叉引用,发现只有主函数存在“logout”这个字符串,重点看下图位置

sub_404770的作用是将请求的参数按“&”进行分割,获取logout参数的值,如果请求中含有logout参数且值为1则进入sub_4062AC函数

sub_4062AC函数,首先会获取请求的cooike值,如果请求体没有HTTP_COOKIE这个字段则直接return,

之后会进入sub_405BA8进行进一步检测,在该函数会首先检测HTTP_COOKIE是否为空,如果为空则return,然后会在cookie值中搜索efm_session_id这个字段,如果没有,同样也是直接return,之后进入sub_4024F8函数,该函数其实就是一个赋值操作,将efm_session_id字段的长度为17的值赋值给a2,后边的变量v5不需要管,对该漏洞无影响。

最后进入sub_405770函数,也就是触发命令执行的地方,重点看红框部分

它会首先执行rm -rf /var/run/{efm_session_id}.lock

然后再执行rm -rf /var/run/{efm_session_id}