首页 > 其他分享 >一个0day的开端-失败的man与nday

一个0day的开端-失败的man与nday

时间:2024-10-10 20:59:49浏览次数:9  
标签:修改 0day 接口 漏洞 参数 网安 nday 代码 man

最近在审计java的CMS,跟着文章进行nday审计,找准目标newbee-mall Version1.0.0(新蜂商城系统),并跟着网上文章进行审计:

https://blog.csdn.net/m0_46317063/article/details/131538307

下载唯一的版本,且源码README中版本也对的上,但没想到nday全部复现失败,但在一番审计后找到了一个新的漏洞点:ssrf,且在前台可以被用户触发。

失败的man与nday:

失败的sql注入漏洞:

(此漏洞原本可以在前台与后台进行sql注入攻击)

分析文章中有两sql注入漏洞,是由于引入mybatis依赖导致,但在我下的版本中根据关键字符${找不到任何的注入点,经过与分析文章对比发现所有注入点全部由${改成了#{由此完成修复。

失败的权限绕过:

(此漏洞原本可以在admin登录后台通过/;/admin/test完成权限绕过)

复现文章写到以request.getRequestURI()获取路径获取路径后再进入if判断:

但我下载的版本进行了修复:将获取前端传输的路径方法改为了:getServletPath()从而完成修复。

两种方法的不同具体分析可以参考如下文章:

https://forum.butian.net/share/3730

失败的越权漏洞:

(此漏洞原本可以根据传入的id参数越权修改他人信息。)

定位到具体代码:

此处代码与复现文章一样,都是先创建一个NewBeeMallUserVO对象,再通过是否为空判断信息修改是否成功。

【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

真正修改信息的代码在updateUserInfo方法里面,于是跟进该方法实现处:

屏幕截图 2024-09-18
222508

发现跟到了接口,于是我们继续跟进,找该接口的实现类:

跟进到如下类,找到具体实现的代码块:

复现文章代码在进入if判断前只有一行代码,并且代码逻辑是从前端传入的id值进行信息修改,但可以看到我下载的代码有两行:

NewBeeMallUserVO userTemp = (NewBeeMallUserVO)httpSession.getAttribute(Constants.MALL_USER_SESSION_KEY);

首先通过http.Session获取当前用户,再赋给创建的userTemp对象。

MallUser userFromDB =mallUserMapper.selectByPrimaryKey(userTemp.getUserId());

再从userTemp对象中获取id值进行信息修改,而非从前端请求中获取参数id的值,来完成漏洞修复。

0day的发现:

登录后台,点击修改或者添加商品:

屏幕截图 2024-09-18
204816

随意传入图片后点击保存并抓包。

屏幕截图 2024-09-18
204915

将POST数据包如上两个参数修改为dnslog地址,放包,在商城前台搜索该商品名称。

屏幕截图 2024-09-18
204953

点击访问,dns平台出现记录。

屏幕截图 2024-09-18
205059

漏洞代码分析:

先看看商品信息存储过程:

根据接口定位代码块:

可以发现在接受参数后进行是否为空判断后进入了核心方法updateNewBeeMallGoods,跟进:

跟到接口后再找到接口实现类,最后定位到更新信息代码块。

可以看到,仅仅对传入参数值进行为空判断和相同判断后,便调用set方法进行存储。

接下来再看看商品信息调用代码链。

根据触发漏洞的数据包接口定位代码块:

此处代码根据传入goodsid参数,将商品渲染到前端,也就是搜索商品后,见到商品那刻触发漏洞。

对接受goodsid参数是否<1判断后进入取商品信息代码。

跟进getNewBeeMallGoodsById方法,找到方法接口后再找接口实现类,再找方法:

发现goodsid参数传入selectByPrimaryKey方法。

该方法通过数据访问对象(DAO)goodMapper调用,且在方法最前处由NewBeeMallGoodsMapper对其定义:

屏幕截图 2024-09-18
225627

全局搜索,找到对应xml文件:

发现通过id参数对数据库操作,取出goodsCoverImg与goodsCarousel参数。

回到最先前的类:

此时goods对象已经获取商品相关参数值。

再进入if判断商品是否上架,上架则进入下一轮代码,将商品信息封装为视图模型,找到NewBeeMallGoodsDetailVO类,发现只接受了goodsCoverImg参数,也就是先前抓包修改处只用修改该参数即可:

最后返回视图名称"mall/detail",表示渲染商品详情页面:

由于存储时未做任何过滤,进行视图层渲染时直接拿出goodsCoverImg参数放到前端,导致用户一旦访问商品便触发该漏洞。

更多网安技能的在线实操练习,请点击这里>>

  

标签:修改,0day,接口,漏洞,参数,网安,nday,代码,man
From: https://www.cnblogs.com/hetianlab/p/18457135

相关文章

  • 使用Performance_schema监控SQL
    背景:在AWSAurora上如果设置slow_query_time=0,抓取全量日志分析,会导致日志文件过大,限制CPU性能发挥。因此使用Performance_schema分析sql。可根据需要的指标,在SQL语句上添加响应字段。#!/bin/bashsource/etc/profileshopt-sexpand_aliases##databasesdbs=`cat/data/......
  • manim边学边做--无向图
    无向图属于数学中的图论这一学科,所谓无向图G,就是由顶点集V(非空集合)和边集E(由V中元素构成的无序二元组的集合)组成的图,可表示为G=(V,E)。在无向图中,边没有方向,即从顶点A到顶点B的边与从顶点B到顶点A的边是相同的。无向图简洁直观,常用于描述社交网络,交通网络以及电子电路等等。......
  • Vision-Language and Large Language Model Performance in Gastroenterology: GPT, C
    本文是LLM系列文章,针对《Vision-LanguageandLargeLanguageModelPerformanceinGastroenterology:GPT,Claude,Llama,Phi,Mistral,Gemma,andQuantizedModels》的翻译。胃肠病学中的视觉语言和大型语言模型表现:GPT、Claude、Llama、Phi、Mistral、Gemma和量......
  • HarmonyOS开发——编译报错“The reason and usedScene attributes are mandatory for
    问题现象:DevEcoStudio编译失败,提示“ThereasonandusedSceneattributesaremandatoryforuser_grantpermissions”。问题原因:从DevEcoStudioNEXTDeveloperPreview2版本开始新增规则:APP包中,所有entry和featurehap的module下的requestPermissions权限清单必须指定(......
  • Windows11系统LxssManager.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个LxssManager.dll文件(挑选合适的版本文件)把......
  • PAT甲级-1150 Travelling Salesman Problem
    题目 题目大意旅行商问题是NP-hard问题,即没有多项式时间内的解法,但是可以验证答案是否正确。给定一个无向图,判断简单环,复杂环和非环。对应“TSsimplecycle”、“TScycle”、“NotaTScycle”。还要求出环的最小路径权值和,及对应的索引。思路主要思路在于如何区分简......
  • 一条命令激活Internet Download Manager
     admin • 2023-09-12上午7:03 • 免费资源, 杂谈 • 阅读88使用InternetDownloadManager可以使用如下命令激活在科学联网情况下,复制这条命令irmhttps://massgrave.dev/ias|iexWin8.1/Win10/Win11系统下,在windows徽标上单击鼠标右键,在弹出的菜单中选择”windo......
  • Linux 网络管理-NetworkManager
    Linux网络管理-NetworkManagerNetworkManager教程https://wiki.archlinuxcn.org/wiki/NetworkManagernmcli命令https://ipcmen.com/nmclihttps://www.linuxcool.com/nmcliIP网络配置:https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/7/html/ne......
  • 探究AudioPolicyManager.cpp中的成员变量mAvailableOutputDevices/InputDevices是根据
    2024-09-2310:29:48.792286-445APM-AudioPolicyEnginepid-286Wframeworks/av/services/audiopolicy/enginedefault/src/Engine.cpp:getDeviceForStrategyInt:2782024-09-2310:29:48.792286-445AudioFlingerpid......
  • Postman 教程:新手必备的操作指南
    API已经成为连接不同系统和服务的重要桥梁,无论你是前端开发者、后端工程师还是测试人员,掌握API的开发和测试技能都是非常重要的。Postman是一个广受欢迎的API开发工具,它不仅能够帮助你轻松发送HTTP请求,还提供了强大的测试、调试和协作功能。 本系列教程旨在帮助你从零......