[代码审计] Catfishcms 越权漏洞分析
一、Cms初识:
FengCms——由地方网络工作室基于PHP+MYSQL开发。是一款开源的网站内容管理系统。系统支持自由订制模型,你完全可以用FengCms打造一个你想要的任意展示模型。模版和程序分离、自由标签系统,让FengCms灵活无比。拥有FengCms,你可以完成国内95%的网站制作需要!首发于:哈拉少安全小队
-目录结构:
二、漏洞描述:
在文章编辑功能处,由于程序没有首先对用户权限进行判断,并且只以POST请求的传参作为修改数据表的条件,直接进行修改以及显示,所以导致可以通过修改该参数,越权查看和修改其他用户的文章。
三、漏洞分析过程:
漏洞存在于:/application/admin/controller/Index.php
定位到rewrite()方法:
-第一处越权:
下面判断接收到的参数,并且将参数值赋值给$wzid参数,然后作为条件执行select()方法查询文章内容,然后交给view视图展示
可以发现,上面的代码仅仅是通过判断GET或者POST参数传的值,都是我们可控的,然后就直接带入数据库中查询了,所以通过修改art的值,就可以查看任意用户的文章了
-第二处越权:
这里也是一样的,直接将POST接收到的postId的值,作为条件,执行update()方法,修改文章内容:
这里我们可以通过抓包,然后修改postId的值,就可以修改任意用户的文章了。
四、漏洞利用:
1、首先添加两个用户test1、test2用于测试:
2、然后分别登陆test1和test2用户,各写一篇文章用于测试:
3、访问到文章编辑页面:
可以看到url上有art参数,并且显示了文章的内容,这里是test2用户访问结果:
然后直接修改art的值为3,就可以成功查看到用户test1的文章了:
4、postId=3是test1的,4是test2的,程序就是通过这个参数执行修改操作的
回到test1查看文章内容,已经被修改为test2用户文章的内容了:
更多文章欢迎关注哈拉少安全小队公众号: