前言
前一个bluecms审计的不是很好(第一次审,一点思路都没有)。
这一次,打算先对站点进行一些测试,找到漏洞后,再对应的进行审计。
开始
当然,先扫一波0.0。。
然后看一下网站的结构(因为这个cms比较小,好审):
index.php:先引入/mc-files/mc-core.php,再通过该文件引入配置文件mc-conf.php以及定义的函数文件mc-tags.php
前台目录:
mc-files:
mc-conf.php:主页的配置文件。
mc-core.php:404访问文件;包含了配置文件mc-conf.php及定义的函数文件mc-tags.php。
mc-tags.php:定义的函数文件。
page目录:
data目录:
elr2my.dat:以序列化形式存储了数据。
index目录:
delete.php:以数组形式存放删除的数据。
draft.php: 草稿。
publish.php:已发布。
posts目录:
与page目录目的一样。
后台目录:
mc-admin:
conf.php:后台站点设置,包含了head.php。
editor.php:一个配置文件。
foot.php:一个标签。
head.php:后台站点头部标签设置,有token验证,失败返回index.php
index.php:后台登录页面,会产生token
page-edit.php:创建页面。
page.php:管理页面
post.php:管理文章
post-edit.php:撰写文章
测试结果
一堆xss
反射性xss
mc-admin/page.php?data=
处,直接给data参数添加payload。
没有任何过滤,直接传入参数。
而且插入了很多地方:
存储型xss
添加文章,编辑页面都存在存储型xss。
触发点在前台,文章和页面的内容处,还有后台设置的评论代码处,网站地址处。
找相应代码:
后台文章,页面内容对应代码:
get_magic_quotes_gpc函数:判断是否给参数添加了反斜杠。
stripslashes函数:去除反斜杠。
然后内容给到:
然后直接输出:
后台站点设置处:
网站地址:site_link
评论代码:comment_code
然后写入:
但是这里:
都进行了实体化。
但是还是存在漏洞。
该文件一开始包含了head.php:
在此文件中:
site_link并没有进行过滤。
过滤的地方在后台站点设置处,但是触发xss的地方head.php,也就是后台的头部位置。
但是为什么评论的地方也过滤了:
但是可以触发呢?
总结
主要都是xss,脑子还是嗡嗡的。
说句实话,xss的代码审计没啥好审的。
主要是整理一下思路:审计之前看看结构。