熊海博客php版本,代码审计

本文详细讲述了作者对熊海CMS v1.0进行代码审计的过程,发现了文件包含漏洞、通过cookie实现的越权漏洞以及SQL注入问题,包括利用报错注入获取用户名和密码,以及未过滤的POST参数导致的后台攻击风险。
摘要由CSDN通过智能技术生成

0x01 前言

无意间发现一个代码审计的以前文章,是审计一篇cms的文章,然后就想着还没有认真的审计过一次呢,就跟着这篇文章的路子走一次吧,来开启我代码审计的篇章。

0x02 审计之旅

首先在站长之家下载了熊海CMS v1.0的源代码,本地搭建好环境之后,将项目拖到Seay代码审计系统中,来一波自动审计~

d4b5b739eec927c24a56435ce6a4b71c.png

咳咳,经然后34个漏洞发现。。。好吧,毕竟小站源码,也很正常。

然后就开始一个一个查看了,看看是否有误报和漏报。

0x03 文件包含

87cafac096dfc25a20fe460217345ac6.png

首先,index.php中的代码如下,明显就是一个文件包含漏洞嘛,这里参数r没有任何过滤直接放到include()函数中了,但是这里include是在files目录下的,所以需要../进行目录改变。我们可以在根目录下新建一个shell.php,写入<?php phpinfo();?>,然后尝试包含一下

36c37ba381b98a4bb60f22f06ce7d848.png

果然成功了!嘻嘻

0x04 越权漏洞

看了一下其他的漏洞,发现除了admin没看,其他的都是误报,但是现在我们还没有办法得到管理员的账号和密码,因此admin的先不看,看一下inc目录下的文件。inc目录下的都是配置文件,很重要,要每一个文件都仔细查看。

在看到checklogin.php的时候,发现了一个越权漏洞。

fcdf5ecd6773566c2aa9d670e9c8b550.png

这里是从cookie中判断时候是管理员的机制,如果cookie中的user为空,就为跳转到?r=login页面,这个页面是后台登陆页面

4c1c8cd2468a12db3b5af851319cd979.png

那么如果我们抓包后将user的值修改成不为空会怎么样呢?

这里用wzlist.php试一下1http://127.0.0.1/admin/?r=wzlist

c0ae6ca0284bf2317f6d565386fca6a1.png

然后就发现进入了后台。。。

d00cf09c3d00cbbf4c9b0f1e61c69150.png

并且只要保证每次cookie中user参数都有值就可以访问后台的所有内容。

之后再看其他的配置文件就看不出来什么了….那么记下来就是看一下admin目录下的文件吧。

0x05 SQL注入1

首先肯定要看登陆页面了,如果能够爆出用户名和密码就完美了。

查看login.php,入眼的就是一段令人激动的代码

0eb8671170aadaea5d5511fad6b19f36.png

这里user和password是直接获取POST传来的参数,并没有进行任何过滤,很容易想到万能密码的使用,但是继续看代码我们发现,这里是先进行user的查询,如果user在数据库中存在,那么就进行password的比较,是将我们输入的password进行md5哈希一下,然后与数据库中的进行比对,所以说万能密码在这里是没有用的,但是我们却可以用报错注入得到用户名和密码。1

2

3user=123' or extractvalue(1,concat((select concat(0x7e,password,0x7e) from manage)))#&password=

或者

user=123' or updatexml(1,concat((select concat(0x7e,password,0x7e) from manage)),0)#&password=

但是这里有一点比较坑的是,这里注出来的password最多只有27位,但是数据库存的是password的MD5值,有32位,所以说得到的md5是不对的,需要进行两次注入才能得到完整的密码,以extractvalue()函数为例,payload需要这样写1

2user=123' or extractvalue(1,concat((select concat(0x7e,password) from manage)))#&password=

user=123' or extractvalue(1,concat((select concat(password,0x7e) from manage)))#&password=

两次自己拼接一下就得到了完整的password的md5值了,拿去解密一下就好了~

a42baaecc15d2bcbbb83b1eeafa7109e.png

f80d0e5499b027916fc62de23be1e5d1.png

0x06 SQL注入2

进入后台之后,可以看一下之前自动审计报的后台的SQL注入漏洞,拿newlink.php为例

c46b358410c494c6663719cd33416f73.png

这里的变量都是直接POST传进来并且没做任何过滤,那么就存在了SQL注入问题。

利用之前的报错注入验证一下

2ce84ba2edf7d068448a7b5ce9886cce.png

得到结果

7c05a2079ef37f422955b01de10fa2e6.png

验证成功。

0x07 CSRF漏洞

这里的内容管理中有一个删除文章的功能,点击后抓包得到url1http://localhost/code_audit/xhcms/admin/?r=wzlist&delete=16

退出管理员账号,根据之前的越权漏洞分析,这里应该会转跳到login的界面,试一下,果然如此。

ddf31ab206b53677a14c9eaea369dc6a.png

然后重新登陆管理员后点击该url,真的删除了该文章

eb53a51476f5981da450f82cf6eca172.png

验证成功。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经过两年的时间,熊海博客ASP到现在已经经历了四次较大的更新,其实大量BUG已经修复,由于个人时间及精力有限,请在遇到程序问题时在我博客留言反馈,在线后会第一时间回复您。 后台管理:你的域名/admin 默认管理员:admin 默认密码:123456 内容管理员:abshina 默认密码:123456 官网:http://www.isea.so ---------------------------------------------------------------------------------------------- 更新时间:2015-04-30 - 修复首页多处数据统计无数据报错。 - 修复无留言数据不显示留言框的问题 - 修复文章分享到微信打不开的问题。 - 优化标题背景透明。 - CSS显示优化 - 修复说说评论显示问题 - 修复IIS7下运行的问题 - 更新版本为 V1.5 ---------------------------------------------------------------------------------------------- 常见问题: 1、问:图片全部显示X: 请在后台首页查看您的空间是否支持AspJpeg,如果不支持,关闭此项功能即可。 2、问:评论时出错 请检查请在后台首页查看您的空间是否支持Jmail ,如果不支持,那么你将无法使用邮件通知功能,请在后台-高级设置 关闭邮件通知功能。 3、问:新的文章图片或者说说无法保存 请检查你的空间数据库文件是否有写入权限,可以使用FTP工具,将相应文件夹更改权限为:777 4、问:在FTP上传文件运行后提示Active Server Pages 错误 'ASP 0116' 丢失脚本关闭分隔符 /Config/head.asp,行 33 Script 块缺少脚本关闭标记(%>)。 这是因为上传的时候head.asp文件并未上传完整,使用Filezilla将上传模式更改为主动,更新上传即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值