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

代码审计入门之BlueCMS v1.6 sp1

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

大家好,我是聂风,在此,我做一个简单的代码审计文章分享来方便同学们学习。BlueCMS v1.6 sp1一直以来就是PHP代码审计入门的最佳良品。这次我们就选择这一个案例进行学习。我先声明,我的代码审计方法是针对代码基础较为薄弱较薄弱的人群进行代码审计。
0×01 环境搭建
Phpstudy
BlueCMS v1.6 sp1源码
代码审计工具(Seay源代码审计系统)
0×02 代码审计过程
拿到一个CMS,有诸多审计方法,我这里的审计方法是黑盒+白盒测试,偏黑盒较多的代码审计。拿到代码后我们应该先对其进行功能点的分析,看一看该CMS存在哪些功能,因为我们寻找漏洞,肯定是从网站中的正常功能进行测试,这是黑盒测试的一个方法,挖掘漏洞的核心我认为在于传参,知道每个传参的意义是不是就等于知道了代码会做什么,要做什么呢?
这是我总结的BlueCMS v1.6 sp1的功能点:

正常而言,我们先将CMS进行一个安装,正常而言CMS的源码放入web目录下后我们会访问install目录,然后进行安装。安装完后我们是不是应该以安全工程师的身份去想一想,我们是否能够再次访问install目录,进行重新安装呢?如果能够进行重新安装,是不是就可以将整个网站的数据全部重装,然后拿到设置新的管理员账号,然后通过后台拿到webshell?
然后我们去访问该页面,正常,可以重装:

于是我们审计出了代码的第一个问题,可以重复安装呢!是不是很简单?
然后我们再来看这个网站,一般而言网站有展示类和功能类:
展示类(比如新闻站、门户站)
功能类(比如商城、OA、系统)
但是无论是展示类还是功能如果我们可以拿到一个普通用户的权限是不是更加容易渗透测试?测试的点是不是更多?
那么我们去注册一个账户吧!

注册一个账号,我们想一想,是不是可以尝试进行一个XSS,我们先注册一个账号,然后抓包看看,然后我们输入了用户名后,我们发现burp抓了一个包:

很明显这个数据包是用来检测你的用户名是否有人注册过,那么我们是不是可以通过爆破user_name传参进行爆破出用户名。(爆破出用户名后爆破密码更容易)
然后填完所有内容,提交,然后抓到了数据包,我们发现是被提交到user.php:

然后我们通过代码审计工具去找那个文件。
在传参中我们看到了我自己输入的“账号|密码|邮箱|验证码”,然后最后出现了一个act传参,打开这个user.php我们可以看出这个文件有好几个功能,act就是决定我的数据包是干什么的传参,于是乎复制这个传参值去源码中寻找这个传参:

这段源码就是关于你的注册,我们可以看到INSERT INTO插入,然后我们看是否存在过滤,很明显这里没有过滤,那么我们尝试进行XSS以及SQL注入
我们就先看XSS
先抓包,正常的填写注册,然后将数据包拦截(这是为了防止前端检测)
修改数据包,加入XSS语句,我是在邮件的地方加的。

成功弹窗:

事实证明这里存在一个存储型XSS,然后我们再去看看SQL注入

这很明显是他的SQL语句,然后我们尝试使用updatexml的报错。
构建下语句:
' or updatexml(1,concat(0x7e,(SELECT database())),1),1,1)#
然后执行,居然成功执行了。没有过滤?居然能成功执行,说明单引号没有起作用,是不是存在魔术引号?试试宽字节!

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

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