CatFish CMS V4.8.75最新版XSS漏洞审计

作为一名没入门的新手的第一篇文章,大佬轻喷,大佬轻喷,大佬轻喷!如有不对,欢迎指正。

这里用到的是最新版的CatFish CMS V4.8.75,是一款开源免费的个人博客及企业建站系统。

首先在官网下载并安装

安装完成后我们先来看首页,有三个可以做输入的地方:搜索、评论、留言。本着见框就插的原则我们先来看搜索框,我们在搜索框注入测试代码:<script>alert(’1′)</script>再用burp suite改包提交:

1557455677(1).png

我们将keyword的值修改为我们的测试代码后点击forward

1557455934(1).png可以看到测试代码并没有生效,应该是做了防护过滤,我们继续测试评论功能,这里有个限制,必须先登录再进行评论,我们注册一个账号,账号123密码123,这次我们修改一下我们的测试代码如下:

1557456470(1).png

1557458128(1).png

测试代码已经评论进去了但是并没有被触发,判断出这里对用户输入的内容也是做了过滤或者转义防护,我们同样的测试一下留言功能点。1557458340(1).png

在留言功能里面我们选择留言内容框插入我们的测试代码,像标题姓名跟邮箱框一般都会有一些字符类型、字符长度或特定格式的限制。跟上面一样我们输入测试代码后点击提交留言并使用burp修改数据包,但我们的测试代码还是没有被触发,好吧前台功能点测试没什么收获我们登入到后台看看:1557458699(1).png

后台功能点还是蛮多的,大致浏览一下,我们直接从写文章功能点开始测试:1557458914(1).png

我们点击代码编辑功能后插入我们的代码,然后发布,发布后我们在所有文章里面找到我们的测试文章并点击查看,我们的测试代码成功触发:1557459085(1).png

这个比较鸡肋的xss漏洞是我们通过黑盒审计程序功能点的方法找到的,那现在把漏洞出现位置的代码分析一波,并且在前面测试前台功能点的时候我们知道前台界面xss漏洞是被过滤替换掉的,我们用代码分析前后台在对于用户输入的内容分别做了怎么样的操作。

可能也有向我一样菜的不能再菜的的新手再做代码审计的时候在功能点发现了一些问题但不能快速的定位到该功能点所在的源码位置,其实用burp就可以快速定位:

1557459826(1).png我们打开代码并定位到发布文章的相关代码位置,漏洞位置在catfish\application\admin\controller\Index.php下的write方法中1557460056(1).png

可以看到在改方法里面有定义了一个标题函数$biaoti这一行,这一行代码对用户输入的内容进行了一个POST跟INSTANCE函数相关的操作,我们先回溯post函数,在catfish\catfish\library\think\Request.php文件中。post函数并没有写入一下过滤或替换的函数。

1557460640(1).png我们再看一下INSTANCE函数,跟POST函数在同一路径,里面也没有做过滤转换:

1557467291(1).png

用户输入的内容没有被过滤转换就会导致漏洞的发生。那我们再来看一下前台页面的功能点是怎么进行防护的,以留言功能为例,我们进入到catfish\application\admin\controller\Index.php里面的留言模块,发现这里用了htmlspecialchars函数对用户输入的内容转换成了html实体,导致xss注入无效。

1557467811(1).png前台做的还是不错的,可能程序员也觉得后台的洞太鸡肋就没加固,后台功能点很多,基本上都没做防护,可以类似这样慢慢测试。

*本文作者:、SoulMate


QQ代刷网

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注