freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

深入讨论代码审计:实战技巧与案例漏洞剖析
2024-06-14 23:46:36

前言

在软件安全领域,代码审计是识别和预防潜在漏洞的关键防线。本文将结合实战经验,深度探讨代码审计技术,包括如何高效挖掘源码、利用文件上传漏洞,以及破解任意账户登录机制。通过实战步骤和技巧分享,旨在为安全研究人员和开发者提供一套实战性强、技术深入的审计策略。

一、源代码探索

在审计旅程的起始,这里发现代码通常被打包至程序集,存放于bin目录下。这一特性有时会引发运维失误,即备份的bin目录意外暴露,为攻击者提供了直接获取源码的便捷途径。这里使用御剑批量扫描,得以快速识别出潜在的敏感资产,进一步利用这些信息,借助dnSpy等逆向工具,深入探究程序内部逻辑。

1718379314_666c63322f862e933c084.png!small?1718379314601

获取到的数据量比较可观,下载完毕的文件可直接利用dnSpy工具进行逆向工程操作,以便直观地审查其源代码。

二、代码审计实战:突破文件上传防护的策略

已成功从指定站点获取到业务相关的bin目录,并已借助dnSpy工具顺利实施了代码逆向分析。

1718379301_666c63257816eb58310c9.png!small?1718379306685

初步审查了两个核心文件,其中WebController负责掌管主页的逻辑控制,而ManagerController则专司管理页面的指令调度。

两个页面的路由配置具体如下:

WebController采用简洁的路由模式:控制器名/方法名。

ManagerController则遵循更为细致的层次结构:Manager/控制器名/方法名。

值得注意的是,位于ManagerController下的大多数操作通常预先配置有登录验证机制,我们可将其深入分析暂且安排在后续阶段。

我们先看WebController下所承载的各项功能分析。

1718379291_666c631b3ceb37d7f43ce.png!small?1718379291482

众多控制器中,通过细致观察命名规范,不少功能领域已能初见端倪。我的习惯是在深入审计之前,优先审阅一番Filter过滤器,因其往往蕴含着关键逻辑。在此环节中,我发现了一个名为SqlFilter的过滤器,显得尤为引人注目。

1718379343_666c634fa3b7716e4f948.png!small?1718379343880

该SqlFilter的主要功能旨在监测GET与POST请求中的敏感参数,尤其是诸如单引号(')这样的字符,以确保数据安全性。

1718379363_666c63630bb3eb6bec023.png!small?1718379363054

一旦检测到此类敏感输入,该过滤器会立即实施拦截措施,从而有效阻断潜在风险。尽管存在绕过SqlFilter的可能性,但鉴于SQL注入攻击路径复杂且耗时,通常倾向于将其作为安全审计的最后一环进行详尽探索。

在审计过程中,我在NoBaseController控制器下留意到一个文件上传功能,该功能封装于upshallfile方法之中,具体实现位于代码的第59行。值得注意的是,该文件存储过程未实施任何文件类型验证措施,暴露出潜在的安全隐患。

1718379381_666c63750c27f53b3094e.png!small?1718379381836

流程解析如下:

在该方法的起始部分(第5至7行),程序声明并初始化了三个字符型变量,这些变量的值直接来源于HTTP请求头的相关属性,实现了对请求头信息的基本捕获。

1718379418_666c639a472652d5eda51.png!small?1718379418337

text变量从请求头中提取path属性值,若缺失则默认设定为“~/”,用以定位资源路径。

text2变量负责获取请求头内的sign属性,此乃用于验证请求真实性的重要标识。

text3变量则捕获请求头的time属性,关乎请求的时间戳信息。

紧接着,在代码的第10至17行,程序执行了对text2变量(即签名信息)的检查,确认其是否为空。一旦发现签名缺失,系统将即时反馈“签名失败”的响应,体现了对数据完整性的基本校验。

# web安全 # 漏洞分析 # 代码审计 # .Net # 代码安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录