0x00 漏洞描述
D-Link DIR-859设备LAN层中出现未经身份验证的命令执行漏洞(CVE-2019-17621)
附件:
0x01 漏洞分析
这个漏洞是在SSDP协议处理过程中造成的,我们向D-Link发送http请求报文,报文的HTTP头字段都会存储到环境变量中,这意味着getenv所获取到的值都是我们可控的。
如下,HTTP_ST是可控的,最终参数传入了lxml_dc_system中进行命令执行
我们使用破壳平台进行漏洞检测该种模式的漏洞。
0x03 漏洞检测
首先按照source点是getenv的返回值,sink点是lxmldbc_system来进行分析,根据此编写规则
MATCH (n:identifier) WHERE n.callee = "getenv" AND n.index=-1 WITH collect(id(n)) as sourceSet
MATCH (n:identifier) WHERE n.callee = "lxmldbc_system" AND (n.index=2 or n.index=3 or n.index=4) WITH sourceSet,collect(id(n)) as sinkSet
call VQL.taintPropagation(sourceSet,sinkSet) YIELD taintPropagationPath RETURN taintPropagationPath
最后结果应为
点击第一个查看详细路径
寻找到了这条漏洞触发路径。