深信服edr 2020HW行动0day 漏洞细节
漏洞1
一下4个漏洞触发都在其他文件,这里只进行漏洞点的分析。
漏洞点tool\log\c.php
启动c.php大约140行-148行
这里执行了两个方法 show_form 与main
这里追踪show_form
内容如下图:
这里的extract存在变量覆盖。也就是说, 这里的你可以控制任何参数,用输入参数进行替代即可。这里的strip_slashes方法简单提一句,改方法做了一下普通的过滤
最后再改文件第8行左右可以看见改函数如何执行
该函数包含再call_user_func中,作为回调函数的值进入call_user_func 被执行。
可以说, 这是一个非常好的bypass webshell
漏洞2
tool\php_cli.php
一样的实现方法, 内容作为call_user_func的参数的回调值进入call_user_func中去。
漏洞3
tool\ldb_cli.php
一样的内容, 同样是引用了$show_form的问题
漏洞4
tool\mdd_sql.php
这里的图都懒得贴了。
神他妈 懂的都懂
漏洞5 任意文件读取
store\cat.php
文件大概400行左右
是由start()进行启动的,
filename 变成变量$fname 并没有过滤直接到了read_file($file_list)
而file_list与fname有关。参与运算的方法是parse_path
至此形成任意文件读取。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!