熊海cms_v1.0代码审计

熊海cms_v1.0代码审计

一、环境搭建

cms下载:https://down.chinaz.com/soft/36930.htm

使用phpstudy环境搭建,php版本要小于7(我这里使用php5.4),之后要自己新建一个数据库用于安转cms(cms不能自动新建数据库)

访问http://localhost/xhcms1.0/install/index.php安装即可

二、代码审计

使用seay源代码审计系统对cms源码进行自动审计,然后手动验证。完成后在对网站的重点功能和敏感位置进行审计,可以借助审计工具的搜索追踪等功能辅助审计。

1、文件包含
  • index.php文件包含
    在这里插入图片描述 参数r通过GET方法接收到文件名后先检查是否为空或者为index文件,是则返回flase。然后就传给include包含,默认是包含file文件夹内的文件。

    在网站根目录新建一个111.php内容为显示phpinfo信息。利用../跳转目录包含

    在这里插入图片描述

  • admin/index.php

    这里和上面的代码是一样的
    在这里插入图片描述

2、XSS
  • file/content.phpSQL语句报错引起的反射型XSS

在这里插入图片描述

参数cid拼接入SQL语句,如果有错误会显示在页面。将cid参数值写成XSS语句,SQL语句执行错误,将xss语句一并输出显示在页面,造成反射型XSS
在这里插入图片描述
在这里插入图片描述

  • file/contact.php反射型XSS

    这里从用户端接收到的page参数会显示在页面上

    在这里插入图片描述

    虽然经过了adsdslashes函数过滤(转义一些预定义字符,主要用于防御SQL注入),但这并不能防止XSS。

    在这里插入图片描述
    在这里插入图片描述

    **注意:**file/list.php中page参数也是一样的问题这里不意义列举了

  • content.php留言昵称存储型XSS

    留言处未对评论的用户昵称做任何过滤。且会直接显示在页面中。

在这里插入图片描述

跟进file/submit.php

在这里插入图片描述

只对昵称进行了非空判断

在这里插入图片描述

提交成功,(这里是因为插入的XSS破坏了原有的结构)

在这里插入图片描述

重新访问文章,触发弹框

在这里插入图片描述
在这里插入图片描述

后台管理页面也会触发这个XSS

网站留言也是一样的问题

在这里插入图片描述

3、SQL注入
  • files/content.php数字型注入

    这里没有对$id变量(接收cid参数值)做引号保护,可以直接数字型注入

在这里插入图片描述

报错注入

在这里插入图片描述

  • files/software.php数字型注入

    这里和上一个很像

在这里插入图片描述

这里也是没有引号保护和过滤,报错注入测试

在这里插入图片描述

  • 管理员登录SQL注入引起的登录绕过

    user、password参数没有经过任何过滤。这里校验用户名然后再校验密码

在这里插入图片描述

只要构造以下语句,则可绕过控制台登录。相当于我在manage表中假注入了一个admin123用户(其实就是利用union联合查询将admin123用户名和密码给到$users变量作为查询数据库的结果,然后再验证密码时就从$users取出密码与POST提交的密码进行比较验证),且将admin123用户的md5值(这里是1的md5)带进去给password参数进行验证,即可绕过控制台登录界面

在这里插入图片描述

而且这里也可以直接将admin123写成admin,直接成为管理员

在这里插入图片描述

除了登录绕过也还是可以作为正常的SQL注入漏洞利用(查数据、写文件等等)

  • 后台多处SQL注入

    后台互动模块留言、评论列表编辑留言位置存在SQL注入,这里通过id号来表示不同的留言,对那条留言编辑要提交对应的id。

    replay.phpid没有经过任何过滤且可控

在这里插入图片描述

报错注入测试

在这里插入图片描述

添加和编辑功能也是可以注入和存储型XSS的

在这里插入图片描述
在这里插入图片描述

后台注入挺多的,大多是未过滤造成的,这里不一一列举了

4、越权或未授权

inc/cheklongin.php是对用户是否登录状态的验证作用

在这里插入图片描述

正常登录admin用户他的cookie如下:

PHPSESSID=9mucanvh8a60q8610k3tjr5oq1; mail=111; url=http%3A%2F%2F111; name=%E6%B5%8B%E8%AF%95%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E; user=admin

可以看到user=admin,根据cheaklongin.php的验证逻辑,我们只要每次访问后台带上user=admin即可越权成为管理员

B5%8B%E8%AF%95%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E; user=admin


可以看到`user=admin`,根据cheaklongin.php的验证逻辑,我们只要每次访问后台带上`user=admin`即可越权成为管理员

![在这里插入图片描述](https://img-blog.csdnimg.cn/c670dbbf19e84172b3c5df5b7b1c6380.png)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值