洞源实验室

科技

代码安全审计经验分享

SQL注入01MyBatis框架中的注入漏洞Mybatis框架支持的CURD功能可以直接搜索XML文件中的${和${}拼接的SQL语句,如果SQL的参数可控,就可能造成注入风险。另外,有的SQL语句使用的是注解开发,把SQL语句可以直接写在了代理接口方法上方,审计的时候可以将两种情况都注意一下,或许有不同的发现。安全的方式应该是使用#号接收参数,但很多时候如数据库表的字段名,又只能使用$符接收参数。白名单的方案是可以将数据库表的字段名维护为一个数组,再检查参数是否在数组内,经过拼接的payload就不能通过检查,
6月21日 下午 8:02
其他

起底震网病毒的来龙去脉

2010年,震网病毒被发现,引起世界哗然,在后续的10年间,陆陆续续有更多关于该病毒的背景和细节曝光。今年,《以色列时报》和《荷兰日报》又披露了关于此事件的更多信息,基于这些信息,我们重新梳理了震网病毒的来龙去脉。伊朗自从上世纪50年代开始便有意开展核计划,但直到本世纪初才在浓缩铀生产有所突破,这得益于巴基斯坦核武器之父阿卜杜勒·卡迪尔·汗(Abdul
5月24日 下午 8:00
其他

XZ-Utils后门事件过程及启示

Freund这次意外的发现,XZ-Utils后门可能会在未来的很长一段事件里造成巨大的危害和影响。由此事件可以看出,针对供应链的安全攻击已经衍生到了社区舆论和心理战范畴,虽然事件的主要角色是Jia
4月12日 下午 6:00
其他

软件安全评估之设计评审入门(上)

所信任的所有其他组件。这种关系构成了一个信任链,它是许多系统安全性的基础。以安全套接字层(SSL)连接为例,我们可以看到一个实际的信任链是如何工作的。当你通过
4月3日 下午 6:01
其他

代码审计之远程调试方法介绍

前言在做代码审计时,通常需要将源码运行起来,用于验证漏洞是否真实存在,通过debug可以更加直观的观察程序的运行细节,可以比较快的确认有效漏洞,debug也是开发人员在代码调试测试阶段经常用到的方法。但源码开始运行前的编译阶段有时候不会很顺利,比如缺少依赖、组件版本不兼容、数据库连接异常等等,对于大型项目,通常还要配置多个中间件提供各项基础功能,要搭建好一个稳定运行的系统往往需要一定时间成本,本文主要介绍几类debug的远程方案,减少审计人员在环境搭建上投入的精力。dokcer远程调试
3月29日 下午 6:01
科技

软件安全评估之软件漏洞基础

零基础概念在软件安全的语境中,漏洞是指软件中的具体缺陷或疏忽,能够被攻击者利用并执行一些恶意行为,例如泄露或修改敏感信息、干扰或销毁系统、接管计算机系统或程序权限等等。安全漏洞(Vulnerability)与大众熟悉的软件缺陷(Bug)有所不同。软件缺陷是程序中的错误、失误或疏忽,导致意外或者不希望发生的情况(即应当发生却没发生,结婚十年一直没怀上)。笼统的说,安全漏洞可以看作是软件缺陷的一个子集,是一种特殊的软件缺陷:恶意用户可以利用它发动攻击,影响软件及其支持系统。几乎所有的安全漏洞都可以被看作软件缺陷,但只有一些软件缺陷最终成为严格意义上的安全漏洞,意味着这类缺陷必须具有安全属性相关的影响,允许攻击者执行通常无法进行的操作(即不应当发生却发生了,外出三年老婆怀上了)。在谈论安全性与可靠性时,有的人会说安全性是可靠性的一个重要组成部分。虽然这种说法不太普遍,但一个可靠性高的软件基本上是缺陷较少的软件:它在用户使用过程中很少出现故障,能够妥善处理各种异常情况,并且采用“防御性编程(Defensive
3月15日 下午 6:00
其他

PNG图片中植入PHP代码

在评估PHP应用时候经常会遇到文件上传漏洞,该漏洞允许通过上传植入有PHP代码的文件来实现恶意代码植入,尤其是在图片上传漏洞中,常见的文件类型是PNG格式。PNG图片的代码植入方式根据防护水平的不同而不同,有四类代码植入方式。01基础的PNG图片代码植入基本的PNG图片上传不考虑任何的上传漏洞防护,很容易造成代码植入从而导致PHP任意代码执行。如以下代码示例:这段代码只是将上传的文件名通过添加唯一ID重命名文件,并将文件移动到可对外访问的目录下,即参数thumbnails_directory设定的目录下。这段代码中只通过MIME做了文件格式的检查(通过文件内容检查判断文件格式),没有做文件后缀检查,因此只要文件内容与PNG格式吻合即可上传。应对这种只有MIME文件格式检查的文件上传功能,可以通过在PNG图片中植入PHP代码来实现代码任意执行。方法1:PNG注释PNG图片格式允许添加注释到文件中,用于保存一些元数据。使用exiftool可以实现注释添加:$
2月23日 下午 6:00
其他

Apktool任意文件写入漏洞分析 CVE-2024-21633

前置知识在复现该漏洞前,有必要了解Apktool和resources.arsc相关的基础知识,方便理解后续POC的构造。Apktool是一款流行的开源逆向工程软件,用于反编译和编译Android应用,因此,Apktool被许多其他逆向工程软件集成。官网地址:https://apktool.org/项目地址:https://github.com/iBotPeaches/Apktool该工具可以将Android应用的apk文件反编译为可编辑的项目结构,同时也可以将编辑后的文件重新打包成apk文件,反编译和重打包操作分别对应工具的d、b两个参数。resource.arsc文件是apk打包过程产生的一个资源索引文件,该文件内容是Android项目的资源和资源索引信息,/res目录中除了values外的资源文件路径都会记录在resources.arsc中。漏洞介绍CVE-2024-21633漏洞Apktool在2.9.1版本及之前的版本中存在漏洞。Apktool根据资源名称判断资源文件的输出路径,攻击者可以利用这一特点将文件放置在系统上指定位置。因而,攻击者可以写入或覆盖用户具有写入权限的任何文件,甚至是在知晓用户名的情况下写入文件到当前工作目录在用户目录下。例如,名称为foo,路径为res/raw/bar的资源会被提取到res/raw/foo。但资源名称没有经过校验,因此将资源名称从foo更改为../../../../../../../../../../..
2月8日 下午 6:01
其他

代码安全审计经验集(下)

对HTTP加密请求参数的测试对于HTTP请求体加密,如果直接使用明文的请求参数,是无法进行正常的安全测试的。但通常还是有办法分析出加解密的策略,如果能把加解密算法还原,就可以先将安全测试的payload添加到原始明文参数,再加密发送到服务端处理(可以编写对应的burp插件实现半自动化,因为逻辑漏洞还是要人工分析),好处就是可以绕过WAF这类防护设备,WAF可能具备解码BASE64编码的能力,但对这种自定义的加密一般识别不了。比如下面的案例。HTTP请求体中的参数是分段加密的:接口使用了RSA和AES配合加密,每次会获得16位随机字符作为AES加密密钥。iv为固定的字符串(该系统中iv的分析相对是困难的)。加密模式为CBC,padding为Pkcs7,在加密入口设置断点获取某次加密的AES密钥。使用密钥和iv解密data参数中的密文,获得明文参数,给明文参数添加安全测试的payload,再用相同的算法加密重新发包。通过接口猜测实现越权对于企业级系统,可用的后台服务不会是寥寥几个,通常会基于CURD组合成丰富的业务功能,用户在系统中看到的服务可能并不是该系统的全部服务。比如下面的案例。下图是查看控制中心-用户管理的功能界面:该功能调用了以下接口,该接口能够返回角色信息。/detection/api/user/findRoleListByUserId/24按照接口命名规则猜测,修改/findRoleListByUserId/为/findUserByUserId/,同时修改userid的数值为超管的userid(1),便返回了超级管理员的个人信息(如身份证、手机号、邮箱)。模糊测试发现隐藏接口俗话说,有毒蛇出没的地方也会有解药。同理,在有新增功能的地方,通常也有删除功能。比如某系统查看首页-公司公告的功能:查看其中一篇公告“集团公司公告测试”,发现可以进行评论。添加评论,查看添加评论的接口接口如下:/cqeip-androidapp/form/articleDiscuss/addDiscuss
2月2日 下午 6:01
其他

代码安全审计经验集(上)

通过fuzz方式绕WAF在目标系统发现一处SQL注入漏洞,但前置了一个某大厂的WAF,通常的套路是内联注释、编码、参数污染、分块传输等等,但方法都尝试了一遍之后,还是突破不了WAF。最后,绕过的技巧是插入了一个"\",
1月26日 下午 6:02
其他

Fuzz工具对比及使用体验

Target,因而极小的概率能从中发现新的漏洞(笔者执行了20亿+测试用例,并没有任何crash产生)。此外,对于没有加入OSS-FUZZ的项目,只能自己去编写Dockerfile以及Fuzz
2023年12月29日
其他

工作汇报如何体现安全工作的价值

每年的年底,都是各个部门向上总结、汇报当年工作成果的时候,安全部门也是其中之一。作为大家眼中的成本中心,做的好,往往意味着花钱也多,做的不好,往往意味着钱花的不值。对于企业内其他部门或岗位而言,会对安全部门的存在有着近乎天然的疑惑:安全部门的同事们每天在做什么工作?为什么我们已经有了测试部门,还要做安全测试?安全部门对于业务的发展和拓展有什么样的作?同样,作为安全工作的最高负责人(CISO或CSO),或安全部门的负责人(安全总监或安全经理),如何在年终汇报或向上汇报中体现安全工作的价值,不仅影响到管理层或其他部门对于安全工作的认识,而且影响到安全部门下一年工作的顺利与否,比如公司是否会增加到安全部门的资金预算和人员预算,是否会对安全工作提出更高的要求。最坏的结果是,企业管理层对于安全工作的不回应,这意味着对于管理层而言安全工作没有任何印象,也不抱有任何期待。企业中的安全部门其实是成本效益部门,也是业务支撑和运营部门,需要在保障业务开展的同时构建业务运行的安全保障体系,以及体系构建过程中尽可能的让企业打消对于安全工作“为什么这样”的疑虑。因此,作为安全负责人或管理者,职责包括:管理层的沟通资源、成本与预算管理信息安全政策制定法规与合规信息安全风险评估安全技术评估与选择安全培训与教育业务连续性安全事件应急响应供应链安全管理持续监控与改进但核心是需要将工作的结果或成果进行量化,如果无法量化安全工作的结果,那么无论是对于之后的安全工作,还是对于向上的工作汇报,都无法呈现相应的效果(怎么判断今年的工作比去年好,怎么判断明年相比今年要做哪些规划)。所以,安全工作汇报的核心在于成本效益和工作量化,并可以参考下面的模型评估安全工作的成熟度。上图中的成熟度类似于CMMI模型中对于项目成熟度的定义,不同之处在于过程的描述。安全工作建设过程中,上述所有的职责内容如果归纳为三类工作,是安全的意识、风险的管控和安全的能力。假设企业中每个人都具有完美的安全意识和行为,那么可以省去绝大多数日常的安全工作,因此无论在各种的安全模型和安全标准中,教育与培训始终是关键的工作之一,甚至是第一位的工作内容。而企业风险的来源,假设在某个静止的节点企业方方面面都不存在安全风险,那么风险的来源是源于企业自身的演变与更新,主要是业务变更所引起的资产变更、人员变更、系统变更等,而变更便容易失去安全的控制措施或手段,因而安全部门最大的难点是对于这些变更的未知和失控,尤其是企业内部发起某个保密项目的时候,安全部门的一切控制手段可能都会被排除在外,在非办公区的私人住宅里组织新的团队使用新的设备建设新的项目。上述成熟度等级中对于项目的描述,即是将企业内部的行为从项目角度划分后,安全工作对于相关项目的管控能力,包括系统的研发、资产的采购、人员的变更、网络的变动、资产的变化等等。能够达到等级3便代表着非常高的安全能力,而等级5则是更近一步能够对于企业的发展产生正向的、积极的作用。成本效益的含义正指的是,安全工作的成果一方面能够降低企业潜在的损失,一方面能够降低企业业务的成本损耗,甚至是直接的节约业务成本,比如,有的企业将业务系统交付给客户,由于客户对于待交付系统的安全要求或标准,导致系统退回重新进行安全能力的加强,从而增加了交付的周期和交付的成本,并影响到交付并发能力和人力资源的使用率,以及最终业务的年度规模。除此之外,对于以软件为主要业务的企业,也可以使用OWASP
2023年12月22日
其他

Winrar RCE漏洞分析 CVE-2023-40477

漏洞影响该漏洞存在于Winrar6.23版本之前。此漏洞是由用户解压RAR3.0格式的压缩文件造成的,该压缩文件目录下要存在恶意构造的.rev后缀名的恢复卷。0x03
2023年12月1日
自由知乎 自由微博
科技

Apache Commons Compress拒绝服务漏洞 CVE-2021-35515

漏洞概述当读取一个特别精心构造的7Z压缩文件时,解压缩条目的编解码器列表的构建可能会导致无限循环。这可能被用来对使用Compress的sevenz包的服务发动拒绝服务攻击。3.3
2023年11月3日
其他

静态源代码安全扫描工具测评结果-SonarQube

测评背景随着数字技术的进步,网络安全行业日益发展,企业对于DevSecOps的应用和落地的需求日益增加,静态源代码安全扫描工具已成为其中的关键产品或工具。2023年5月30日,OWASP中国基于目前行业内的相关调研报告以及行业共识发布了《静态源代码安全扫描工具测评基准》v2.0版本,对于静态源代码安全扫描工具的测评基准进行了升级。在此基础上,【网安基地供应链安全检测中心】联合【武汉金银湖实验室】邀请国内外各大厂商以部署环境、安全扫描、漏洞检测、源码支持、扩展集成、产品交互以及报告输出七个维度为基准,开展“静态源代码安全扫描工具测评活动”。测评详情产品名称:SonarQube
2023年10月12日
其他

静态源代码安全扫描工具测评结果-Checkmarx

测评背景随着数字技术的进步,网络安全行业日益发展,企业对于DevSecOps的应用和落地的需求日益增加,静态源代码安全扫描工具已成为其中的关键产品或工具。2023年5月30日,OWASP中国基于目前行业内的相关调研报告以及行业共识发布了《静态源代码安全扫描工具测评基准》v2.0版本,对于静态源代码安全扫描工具的测评基准进行了升级。在此基础上,【网安基地供应链安全检测中心】联合【武汉金银湖实验室】邀请国内外各大厂商以部署环境、安全扫描、漏洞检测、源码支持、扩展集成、产品交互以及报告输出七个维度为基准,开展“静态源代码安全扫描工具测评活动”。测评详情产品名称:Checkmarx
2023年10月7日
其他

代码审计 | 不安全的路径检查

示例代码搭建环境:PHP(8.1.19)+Nginx(1.24.0)
2023年9月22日
其他

代码审计 | 同源策略的绕过

漏洞利用以下代码利用sandbox绕过同源策略以达到OAuth授权码窃取的目的。访问攻击代码会正常打开授权页面。点击授权会发现GitHub提示Cookies
2023年9月8日
科技新闻

Apache Tomcat请求走私漏洞 CVE-2022-42252

漏洞利用条件DefaultServlet的readOnly属性为false(默认为true)。并且当存在自定义的静态文件形式的错误页面时,可以覆盖错误页面。3.4
2023年9月1日
科技

从技术角度看《孤注一掷》

近日,一部名为《孤注一掷》的犯罪影片正在大银幕上热映,这部影片以揭秘网络诈骗全产业链内幕为主题,全方位拆解了电信诈骗套路。由于有包括俞华辰等安全专家的参与,其中也不乏专业的技术场景。本文将按照电影情节先后,介绍和分析电影场景中的技术手段及原理,看哪些是真实存在的技术,哪些又是艺术加工的结果。酒店会场里的恶作剧影片开始,潘生在离开会场之后使用SQLMap工具利用SQL注入漏洞进入到了酒店管理系统,最后“篡改”了正在演讲的屏幕。电影中使用的完整的命令是:python
2023年8月24日
科技

Hutool资源消耗漏洞 CVE-2022-4565

漏洞分析资源消耗漏洞是指恶意用户或攻击者通过特定的方式使用系统资源,导致系统资源(如CPU、内存、磁盘空间、网络带宽等)耗尽,从而影响系统的正常运行和可用性。该类漏洞可能造成DoS(Denial
2023年8月4日
科技新闻

QQ&TIM提权漏洞分析

3为了只让A7一个字节覆盖,这时候QPCore的回调函数地址为0x0040C9A7。最后再次向命名管道写入数据使得QQProtect.exe加载了evil.dll文件。3.2.2
2023年7月7日
网络安全

数百万GitHub仓库可能遭受RepoJacking攻击

RepoJacking攻击示例从2.1节可知,攻击者为了进行RepoJacking攻击,首先需要做的就是获取更名用户的仓库,或是已删除/已改名的组织名的仓库。该数据的获取渠道如下:1.
2023年6月30日
网络安全

bignum库遭受S3 Bucket劫持攻击

进行访问,使其广泛用于各种用途,例如网站托管、数据备份和归档、内容分发和应用程序数据存储。近期Node.js使用的开源包bignum由于Bucket被劫持导致用户在安装该包时会下载恶意软件。0x01
2023年6月21日
科技

召集令 | 静态源代码安全扫描工具测评

武汉洞源实验室是一家专注于软硬件供应链检测的第三方中立平台。本次活动由OWASP中国与网安基地供应链安全检测中心联合举办,点击下方【阅读原文】可跳转至OWASP中国官方召集链接。
2023年6月20日
网络安全

Qt弱加密漏洞分析

类,该类允许应用程序发送网络请求和接收回复。其在处理响应时,会根据服务器发送的“Strict-Transport-Security”的响应头来更新HSTS策略。0x01
2023年6月15日
网络安全

PyPI恶意存储库fshec2攻击分析

事件过程2023年4月17日ReversingLabs公司的安全团队向PyPI团队报告了名为fshec2的恶意包。同一天该包从PyPI存储库中删除。0x02
2023年6月9日
科技

KeePass 内存泄露主密码漏洞分析

漏洞背景0x00KeePass是一款开源密码管理软件。它旨在帮助用户存储和管理他们的密码和敏感信息,以便安全地访问各种在线服务和应用程序。KeePass提供一个安全的数据库,其中可以存储用户名、密码、网站链接、附加说明和其他自定义字段。这些信息被加密保护,并需要一个主密码或密钥文件才能解锁和访问。漏洞信息0x01漏洞影响0x02该漏洞存在于2.54之前的KeePass2.x版本中。成因是由于KeePass文本框内容输入时,会在其进程内存中创建托管字符串,如果将其内存进行转储,则会导致主密码泄露问题。漏洞分析0x03笔者选择KeePass2.53.1版本进行漏洞分析与验证。首先输入了14个字符的主密码。产生漏洞的代码在KeePass/UI/SecureTextBoxEx.cs文件中。首先在输入过程中,.NET
2023年5月26日
其他

3CXDesktopApp供应链攻击分析

一、事件背景3CX是一家软件公司,该公司为客户提供基于软件的电话系统,用于企业或组织内部的通讯。3CX电话系统可以在Windows或Linux服务器上部署,并提供包括VoIP、PSTN和移动电话在内的多种通讯方式。此外,3CX还提供一系列的通讯软件,包括用于电脑、移动设备及浏览器的应用程序,可以让用户通过各种方式与他人通讯。据3CX称,其提供的软件服务了600,000多个客户,遍布全球190多个国家。2023年3月29日,CrowdStrike发出告警,指出具备合法签名的二进制程序3CXDesktopApp存在恶意行为。二、事件过程2023年3月22日凌晨一点,部分用户反馈3CXDesktopApp自动更新的版本被杀毒软件告警。此时部分用户还将其定性为误报。SentinelOne的告警信息显示软件存在shellcode或代码攻击能力。2023年3月29日上午十一点,安全公司CrowdStrike发出告警,确定具备合法签名的二进制程序3CXDesktopApp存在恶意行为,危害Windows和macOS。CrowdStrike怀疑其攻击行为源于LABYRINTH
2023年5月12日
其他

WECHAT二维码闪退分析

一、事件背景腾讯旗下的微信是一款社交通讯应用程序,由中国互联网巨头腾讯公司开发和运营。作为一款领先的社交应用,微信在全球范围内拥有大量的注册用户,且用户的活跃度极高。在微信中,用户可以通过扫描二维码来进行好友添加、进入公众号页面、加入群聊、进入小程序等。2023年4月23日,用户在扫描或浏览某些畸形二维码时,会导致微信出现闪退等异常情况。据了解,这种异常情况主要是由于畸形二维码造成的越界读取产生。二、事件过程2023年4月23日晚上,部分微信用户反馈点开二维码图片会造成闪退。2023年4月24日凌晨三点,GZTime发出了制造畸形二维码的python代码。2023年4月24日下午两点,Konano发现微信开源的二维码识别引擎中的问题代码。至文章编写的2023年4月26日为止,iOS端微信尚未更新修复此bug。三、技术分析1、
2023年4月28日