PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)

一、代码审计

第一处越权

把id传递过来,进行一个where查询,没有验证用户直接查询
通过查询id值,可以查询不同用户的文章
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第1张图片

第一处漏洞复现

首先在后台创建一个用户test01,然后以test01的身份登陆后台,编辑一篇测试文章
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第2张图片
test01查看自己的测试文章,发现id的值为3
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第3张图片
测试,将id修改为1、2,可以编辑admin账户的文章
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第4张图片
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第5张图片

第二处越权

通过get方式接收art参数的值,之后将art的值赋值给wzid,然后将id=wzid的值代入数据库select查询,也是没有验证用户的身份
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第6张图片

第二处漏洞复现

创建两个账户test01、test02
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第7张图片
登录test02账户,创建如下内容后,退出再重新编写内容,使用burpsuite抓包
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第8张图片
将postid=4修改为postid=3
PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第9张图片

PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第10张图片
重新登录test01的账号,发现文章被修改了
因为id=3是test01刚刚创建的文章,所以修改了id值就是修改了别人的文章内容

PHP代码审计——越权漏洞(Catfish(鲶鱼) CMS v4.4.14)_第11张图片

修复方案:

对某一数据进行增删改查时需要去校验下所操作的数据是否属于该用户

你可能感兴趣的:(PHP代码审计)