搭建
我用的是IDEA
下载源码
链接如下:https://github.com/newbee-ltd/newbee-mall
直接在github下载即可
在phpstudy打开web环境,新建数据库,如下:(数据库名称一定要是newbee_mall_db)
然后导入sql文件(源码包里面就有)
记得先修改这个配置文件
(修改数据库名和用户名)
然后导入即可
\newbee-mall-master\src\main\resources\newbee_mall_schema.sql
在Navicat Premium 17连接数据库
弹出即说明成功启动
直接输入
审计初审
先看pom.xml配置文件以及README.md
README.md中存在MyBatis,可能存在sql注入
通过搜索发现存在拦截器interceptor,可能存在越权漏洞
controller目录中也可能存在越权漏洞,下面具体审计可以跟着看一下
水平越权漏洞
或者在篡改相关参数(请求参数 / 表单字段 / JSON 字段)
要么就是修改之中存在注入点,需要替换用户
在url使用参数切换用户或者管理员id未校验,尝试替换 ID(+1、-1、随机大/小 ID、其它已知用户的 ID)
文件/图片等直接用可访问 URL,访问其它用户的文件路径或修改 URL(没有权限校验或短期 token)
token 换取其他用户的数据
直接访问管理/内部接口,扫列出隐藏路由、尝试访问
/admin
、/internal
、/debug
sql
接上面说的,存在MyBatis,直接检索${,主要是查看${} 拼接 SQL 语句
都找不到和sql相关的东西
说明可能使用
#代替$
实现sql的预编译,防止了sql注入(可能是版本问题,这个漏洞修复了emmm)查找
#{
进去分析一下
使用了直接拼接的方式向数据库进行查询(但是预编译即已修复)
所以可以查看NewBeeMallGoodsMapper.java (逆向追踪)
找到传参定义,跟近函数
跟进到getTotalNewBeeMallGoods
C:\Users\95227\Desktop\newbee-mall-master\src\main\java\ltd\newbee\mall\service\impl\NewBeeMallGoodsServiceImpl.java
@Override
public PageResult getNewBeeMallGoodsPage(PageQueryUtil pageUtil) {
List<NewBeeMallGoods> goodsList = goodsMapper.findNewBeeMallGoodsList(pageUtil);
int total = goodsMapper.getTotalNewBeeMallGoods(pageUtil);
PageResult pageResult = new PageResult(goodsList, total, pageUtil.getLimit(), pageUtil.getPage());
return pageResult;
}查看谁调用了getNewBeeMallGoodsPage 方法
跟进到NewBeeMallGoodsController
C:\Users\95227\Desktop\newbee-mall-master\src\main\java\ltd\newbee\mall\controller\admin\NewBeeMallGoodsController.java
@RequestMapping(value = "/goods/list", method = RequestMethod.GET)
@ResponseBody
public Result list(@RequestParam Map<String, Object> params) {
if (ObjectUtils.isEmpty(params.get("page")) || ObjectUtils.isEmpty(params.get("limit"))) {
return ResultGenerator.genFailResult("参数异常!");
}
PageQueryUtil pageUtil = new PageQueryUtil(param
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)