首页 > 其他分享 >Hackthebox bagel.dll 代码审计

Hackthebox bagel.dll 代码审计

时间:2024-07-02 20:09:06浏览次数:18  
标签:函数 dll bagel Hackthebox Base File 序列化

利用ilspy将bagel.dll打开

关于此目录有可以说的内容

目录解析

最上方的bagel是组装名字(assemble name)

bagel_server 是命令空间(namespace)

下一级分支是类如File,Base,Handler,Orders等(class)

反序列化导致的命令执行漏洞代码审计思路

 首先看主程序Bagel

1.通过明显的英语翻译可以看到main函数执行了两个函数一个是initialzieserver()和startserver(),初始化服务和开启服务 服务为wsserver(websocket)

值得关注的是初始化服务中存在MessageReceived(),根据下方关于messagerecevied函数的设计,可以知道此函数利用了handler类中的deserialize方法和serialize方法(反序列化函数)

而此反序列化函数获取到的内容是json格式的内容。

因此跳转到handlerle类中看deserialize函数是否被重写

Handler类

可疑点

1.看到存在typenamehandling=4的设置 

2.反序列化的语句是JsonConvert.DeserializeObject<Base>(json,val);

反序列化的对象是从Base类获取的key-value值

观察Base类

关注点:

1.Base类继承于Orders类,因此继承父类的所有公共函数(public函数)

2.userid和session都是私有成员,且session为Unauthorized

观察Orders类

提炼:

1.orders类存在三个私有成员filename、order_info和new一个file类

2.存在三个公有函数RemoveOrder、WriteOrder、ReadOrder

其中Readorder读取文件内容存在目录路径过滤

writeOrder函数使用get时直接返回writefile内容

RemoveOrder函数仅仅设置了getter、setter

Order类内new了一个FIle类,因此可以使用File类设置的函数

观察File类

提炼:

1.存在两个类为ReadFile和WriteFile

调用readcontent和writecontent函数进行读写操作

 

因此我们可以确定一个路径,如下图

 图片来源:0xdf 师傅

 

需要注意的是使用getter时是不需要参数的情况下,如果调用setter就是传了一个参数才会调用

 

标签:函数,dll,bagel,Hackthebox,Base,File,序列化
From: https://www.cnblogs.com/lisenMiller/p/18280467

相关文章

  • termsrv.dll 是实现 Windows 远程桌面服务的核心组件,它通过上述机制和功能,支持了在企
    远程桌面协议(RemoteDesktopProtocol,RDP)是由微软开发的一种专用协议,用于在网络上进行远程桌面会话和远程应用程序的访问。它允许用户从一个计算机(称为客户端)远程控制另一个计算机(称为服务器),而无需物理上位于服务器旁边。WindowsRDP的底层原理:客户端-服务器架构:客户端:用户......
  • 诺森德塔防游戏启动故障:msvcp110.dll文件缺失的高效解决策略
    《诺森德塔防》是一部以二战为背景的“肉鸽塔防”游戏,拥有着极为火爆的战场表现,让你能充分感受到收割成片敌人的快感,同时在玩法及策略性上都有着突出表现,然而最近很多用户都遇到了启动故障:msvcp110.dll文件缺失的问题,下面一起来看看解决方法介绍吧!重新安装MicrosoftVisualC......
  • 修复《Call of Duty: Black Ops III(使命召唤3)》DLL损坏问题:确保游戏体验顺畅的详尽方
    《CallofDuty:BlackOpsIII》(使命召唤:黑色行动3)是一款由Treyarch开发、动视发行的未来战争题材第一人称射击游戏,设定在2065年的近未来,玩家扮演高科技装备的超级士兵,参与紧张激烈的单人战役与多人对战,还包括标志性的丧尸模式。如果你遇到《CallofDuty:BlackOpsIII》......
  • 解决《SMITE 神之浩劫》游戏中DLL文件损坏的问题
    《SMITE》(神之浩劫)是一款基于神话背景的3D动作团队竞技游戏,玩家操控各路神祇,在第三人称视角下进行激烈战斗,融合了MOBA策略与动作游戏的快节奏操作,带来独特的线上对战体验。如果你在游玩《SMITE神之浩劫》时遇到dll文件受损的问题,可以尝试以下步骤来解决:1.重新安装游戏首......
  • 修复《Sea of Thieves》游戏中DLL损坏问题的解决方案
    《SeaofThieves》是一款让玩家活出海盗梦想的共享世界冒险游戏,你可以与朋友们一同航行、战斗、寻宝,成为传奇海盗,探索满载趣味与挑战的广阔海域。如果你在玩《SeaofThieves》时遇到dll文件受损的问题,可以采取以下步骤尝试解决:1.验证游戏文件完整性通过Steam或Microsoft......
  • 应对《Balatro》游戏中DLL损坏问题的有效策略
    《Balatro》是一款结合了德州扑克元素与肉鸽(Roguelike)特色的策略卡牌游戏,玩家需构建牌组并巧妙利用小丑牌机制,旨在通过策略与运气的双重考验,战胜对手成为牌桌上的赢家。如果你在玩《Balatro》时遇到了dll文件受损的问题,可以尝试以下步骤来解决:1.验证游戏文件完整性如果游......
  • 看门狗游戏启动困境:ace-drv32.dll丢失问题的全面修复方案一览
    遇到《看门狗》(WatchDogs)游戏提示“ace-drv32.dll”文件丢失的问题,意味着您的系统中可能缺少或损坏了Ubisoft游戏运行所需的某些组件。以下是解决此问题的步骤:1.重新安装游戏尝试卸载并重新安装游戏,有时候游戏的重新安装可以自动修复缺失的文件问题。2.更新UbisoftCon......
  • 糖豆人提示ffmpeg.dll丢失怎么办?糖豆人提示ffmpeg.dll丢失最靠谱的解决指南
    遇到《糖豆人:终极淘汰赛》(FallGuys:UltimateKnockout)游戏提示“ffmpeg.dll”文件丢失的问题,意味着你的系统中缺少或损坏了FFmpeg多媒体框架中的一个动态链接库文件。以下是解决此问题的步骤:重新安装游戏尝试卸载并重新安装游戏,有时候游戏的重新安装可以自动修复缺失的文......
  • Windows11系统System.Workflow.Activities.resources.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个System.Workflow.Activities.resources.dll......
  • Windows11系统System.Windows.Controls.Ribbon.resources.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个System.Windows.Controls.Ribbon.resources.......