之前没有真正的进行系统的代码审计,导致PHP代码审计还比较薄弱,这次准备记录一下代码审计一些CMS的笔记。

安装漏洞

首先,我们先看下安装的地方

从第10行到第16行,接受请求参数后并没有进行任何的过滤

再继续往下看,第45行到第49行,也没有对数据进行过滤

然后直接将数据库的配置信息写入了 inc/conn.info.php

由此,我们可以判断,我们可以进行写入一句话木马Getshell

但是有个问题,上面进行了数据库连接,如果数据库的配置信息不对,程序就直接中断了,下面写入配置信息也就不会生效。所以,我们可以在自己服务器上创建一个payload数据库名称 '.phpinfo();//

填入正确的数据库配置

可以看到,已经执行了phpinfo函数,我们再看看 conn.info.php 的代码

闭合了单引号,连接了phpinfo函数再注释后面 ';

权限验证设计缺陷

inc/checklogin.php 文件中,发现了一处越权漏洞

这个文件主要是判断管理员是否登录,通过获取Cookie中的 user 值,判断是否为空,如果为空则跳到登录页面

仅仅只是判断了是否为空而已,我们只需要添加一个 user 的cookie,就可以直接进入后台

这里我用的是Google浏览器的一个插件 EditCookie 直接添加一个cookie值就行了,再去访问后台主页

可以看到,我们直接进入了后台

Cookie注入

看到这里,将Cookie中的user值赋值给了 $user 变量,然后带入了SQL语句中查询,并没有进行任何过滤,很显然存在SQL注入

构造一个Cookie的Payload user=ad' union select 1,2,user(),4,5,6,7,8 # 执行后,在数据3的位置上可以显示数据

吐槽

这个系统比较适合新手代码审计,漏洞有点多,XSS漏洞我都没看了,我只简单的看了一下。这个系统是熊海内容管理系统V1.0,有兴趣的小伙伴可以去审计一下