马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
discuz x5.0官方核心文件中的一段强制版权保护混淆代码赏析**** WE WILL WIN THE FUTURE ****Powered by Discuz! X5:
官方操作嵌入原文:https://gitee.com/Discuz/DiscuzX ... 6111285d38a8fc37315
官方把这叫做“优化逻辑~”,所以你们懂的哈~再看到所谓的“优化~”长点心吧。
加密代码路径:/source/function/cache/cache_censor.php
- if(!empty($data['filter'])) {
- $temp = str_repeat('o', 7);
- $temp = str_repeat('o', 5);
- $l = strlen($temp);
- $l = strlen($temp);
- $data['filter']['find'][] = str_rot13('/1q9q78n7p473'.'o3q1925oo7p'.'5o6sss2sr/v');
- $data['filter']['find'][] = str_rot13('/1q9q78n7p473'.'o3q1925oo7p'.'5o6sss2sr/v');
- $data['filter']['replace'][] = str_rot13(str_replace($l, ' ', '****7JR7JVYY7JVA7'.
- $data['filter']['replace'][] = str_rot13(str_replace($l, ' ', '****5JR5JVYY5'.
- 'GUR7SHGHER7****\aCbjrerq7ol7Pebffqnl7Qvfphm!7Obneq7I')).$l;
- 'JVA5GUR5SHGHER5****\aCbjrerq5ol5Qvfphm!5K')).$l;
- }
- }
复制代码 这是Discuz! X5.0 核心文件中的一段混淆代码,此乃官方操作的叫做“保护原则”,非官方的如此操作则会被官方定义为“后门”。
代码行为:通过str_rot13和str_repeat等函数混淆字符串,向系统的“词语过滤(Censor)”机制中强行写入一条替换规则。
真实含义:这是一段版权保护强制注入改写代码。当特定条件触发(或匹配到特定指纹)时,它会将内容强制替换为:“**** WE WILL WIN THE FUTURE **** Powered by Discuz! X”。
代码主要使用了 ROT13(回转13位)编码和简单的字符串替换。 A. 核心变量解析代码利用 $l = strlen($temp) 作为动态变量,旧代码中 $l=7,新代码中 $l=5。这个数字被用作混淆字符串中的“占位符”。 B. find 字段(匹配规则)解析代码: - str_rot13('/1q9q78n7p473'.'o3q1925oo7p'.'5o6sss2sr/v');
复制代码 拼接后:/1q9q78n7p473o3q1925oo7p5o6sss2sr/v
ROT13 解码结果:
- /**** WE WILL WIN THE FUTURE ****\nPowered by Crossday Discuz! Board V7/i
复制代码 分析:这是一个正则表达式,**** WE WILL WIN THE FUTURE ****\nPowered by Crossday Discuz! Board V7 是一个MD5哈希值,/i 表示不区分大小写。
C. replace 字段(替换内容)解析旧代码(Discuz! Board 版本): - **** WE WILL WIN THE FUTURE ****
- Powered by Crossday Discuz! Board V7
复制代码新代码(Discuz! X5 版本 - 本次变更): - **** WE WILL WIN THE FUTURE ****
- Powered by Discuz! X5
复制代码 3. 详细逻辑行为分析这段代码位于 savecache('censor', $data); 之前,意味着它在保存敏感词过滤缓存时执行。 检查过滤器:if(!empty($data['filter'])) 检查是否存在词语过滤规则。 注入规则:它强行向 $data['filter']['find'] 和 $data['filter']['replace'] 数组中追加上述解码后的规则。 持久化:通过 savecache 函数,这条规则被写入到服务器的缓存文件中。
触发机制:这个正则 /**** WE WILL WIN THE FUTURE ****\nPowered by Crossday Discuz! Board V7/i 看起来像是一个特定的指纹。通常在以下情况可能被触发:
最后我想说的是,同样作为开发者,在开源软件中使用 str_rot13 等混淆手段隐藏业务逻辑,严重违反了透明性原则。不过这是discuz,这样的做法也就只有所谓的官方了~
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站内容为站长个人技术研究记录或网络,不提供用户交互功能,所有内容版权归原作者所有。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|