TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045

破绽描绘

CVE-2021-4045 是一个命令注入破绽,允许在 TP-Link Tapo c200 IP 摄像机中远程执行代码。它影响 1.1.16 Build 211209 Rel 之前的一切固件版本。37726N 由于对用户输入的检查缺乏uhttpd,这是设备的主要二进制文件之一
 


 

影响版本

1.1.16 Build 211209 Rel 之前的一切固件版本
 


 

破绽剖析

函数exec_and_read_json用于popen执行命令:

图片[1]-TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045-孤勇者社区

xec_and_read_json由 2 个未命名的函数运用,我将其命名为set_language和wifi_connect。他们分别处置言语和wifi配置(显然)。wifi_connect似乎解析单引号('),但是,set_language没有。这意味着假如我们能够控制set_language函数的输入,我们就能够胜利地注入我们本人的命令。

图片[2]-TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045-孤勇者社区

图片[3]-TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045-孤勇者社区

函数set_language由uh_slp_proto_request我之前提到的函数运用,它将从用户接纳到的一些解析数据作为输入传送。

图片[4]-TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045-孤勇者社区

图片[5]-TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045-孤勇者社区

要解析用户数据,uh_slp_proto_request请检查它能否是有效的 JSON 对象。然后,它得到一个由 key 标识的字符串值"method"和一个由 key 标识的字典值"params"(至少我是这么以为的,由于 Ghidra 无法解析函数调用,但似乎以这种方式工作)。依据选择的办法,uh_slp_proto_request选择将被调用的函数。

因而,经过发送{"method": "setLanguage", "params":{}}我们胜利调用set_language函数并{}作为language_json参数传送。然后,在内部set_language,language_json对象被转换为字符串并直接插入"ubus call system_state_audio set_language '%s'"执行。

经过提交{"method": "setLanguage", "params": {"payload": "'; touch poc;'"}},ubus call system_state_audio set_language '{"payload": "'; touch poc;'"}'将被执行,其中实践包含 3 个命令:ubus call system_state_audio set_language '{"payload": "', touch poc, 和'"}'. 第二个给我们完好的代码执行。

如今,uh_slp_proto_request由另一个管理一切恳求的未命名函数运用,我将其命名为main_server_function. 假如恳求有效(不超越最大长度,依据效劳器配置运用 http 或 https 等),main_server_function检查 URL 能否包含/cgi-bin/luci或/web-static. 假如没有,uh_slp_proto_request则调用。

图片[6]-TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045-孤勇者社区

经过猜想并向相机发送几个恳求,我们能够检查所运用的数据uh_slp_proto_request能否是常规 POST 数据。/因而,假如我们运用先前的有效负载发送 POST 恳求,uh_slp_proto_request将处置此数据,调用set_language并且我们的有效负载将被注入到执行的命令中exec_and_get_result。

如您所见,我没有提及任何有关身份考证的内容,由于setLanguage无需登录即可调用办法。这允许任何用户只需一个未经历证的恳求即可完整控制相机。
 


 

破绽应用

POC
https://github.com/hacefresko/CVE-2021-4045-PoC

图片[7]-TP-Link Tapo c200远程执行代码漏洞CVE-2021-4045-孤勇者社区

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片