存在漏洞情况
1.水平越权 2.订单状态修改 3.任意文件上传 4.xss漏洞
一、说明
starsea-mall 项目是一套电商系统,包括 starsea-mall 商城前台系统及商城后台系统,基于 Spring Boot 2.X 及相关技术栈开发。 前台商城系统包含首页登录、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。 后台管理系统包含数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。
项目地址https://github.com/StarSea99/starsea-mall
二、项目搭建
下载源码,使用idea导入
创建相应的数据库,更改配置信息
项目访问地址如下: 后台地址: http://127.0.0.1:8080
三、组件漏洞审计
我们对系统的组件先进行统计看看有没有历史漏洞
组件名称 |
组件版本 |
是否存在漏洞 |
mybatis |
2.1.3 |
不存在 |
springfox-swagger2 |
2.7.0 |
不存在 |
springfox-swagger-ui |
2.7.0 |
不存在 |
commons-fileupload |
1.6 |
不存在 |
没有发现组件存在漏洞
四、单点漏洞审计
1.水平越权
我们在更改信息的时候发现数据包参数有id值,于是就尝试修改了一下id值看看能不能接管其他id的账户
这是我们直接抓的默认数据包
我们直接将userId值改一下,我们从数据库看到的这些值
将userid改为1发现成功接管了它的账户
我们从代码方面进行分析
跟踪这个接口的路由/personal/updateInfo
传进来的参数为用户信息和用户的身份验证,之后调用了updateUserInfo这个方法
我们跟踪一下updateUserInfo这个方法
继续跟
此方法首先从HTTP会话中获取当前用户的临时信息,然后根据提供的新信息更新数据库中的用户信息
更新成功后,将新的用户信息更新到HTTP会话中
主要是这部分存在漏洞缺陷,它只判断了用户id是否存在在数据库中,却不校验是不是我们登录用户的这个id值,这样我们就可以通过修改id值去接管该id值的用户了。
2.订单状态修改
我们从数据库中可以看到支付状态的校验仅仅只用0和1来判断
我们正常支付抓一下支付成功的数据包
跟踪一下/paySuccess这个路径
发现它只根据订单号和支付状态去判断,所以我们这里只要修改一下支付状态就可以进行支付绕过了
我们验证一下
这是一个未支付的订单号,我们改一下数据包发送看看可以成功吗
发现确实存在该逻辑漏洞
3.任意文件上传
上传图片进行抓包
修改后缀看可不可以上传
发现可以上传说明存在任意文件上传漏洞
我们进入代码层面看看
跟踪路径/upload/file
发现这段代码并没有对文件后缀校验,但我们前端不能直接上传jsp类的特殊文件,说明该系统的文件上传过滤仅仅只是前端过滤。所以我们可以进行抓数据包修改来绕过
4.xss漏洞
我们在修改商品信息的参数中发现xss漏洞
我们去代码层面分析一下
定位到该路径/admin/goods/update
发现这里没有进行任何过滤,就直接执行了data里面的信息,我们也没有在拦截器和过滤器里面发现关于xss漏洞的过滤情况,所以存在xss漏洞。
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)