您现在的位置是:探索 >>正文
dz漏洞
探索62522人已围观
简介Discuz! 的漏洞史,基本就是一部 PHP 程序员的血泪教材。2008 年到 2014 年那段时间,国内论坛十有八九跑的都是 DZ,攻击者盯着这套代码翻来覆去地挖,挖出来的洞够写好几本书。最要命的 ...
Discuz! 的漏洞漏洞史,基本就是漏洞一部 PHP 程序员的血泪教材。2008 年到 2014 年那段时间,漏洞国内论坛十有八九跑的漏洞都是 DZ,攻击者盯着这套代码翻来覆去地挖,漏洞挖出来的漏洞洞够写好几本书。最要命的漏洞是,很多洞的漏洞成因极其相似——过滤不严、变量覆盖、漏洞文件名可控。漏洞听起来像老生常谈,漏洞但当年就是漏洞能反复得手。
先拿一个经典案例说事。漏洞DZ 的漏洞 faq.php 文件,早期版本里有个参数处理逻辑,漏洞攻击者可以通过构造 action=grouppermission 配合特制的 gids[] 数组,把 SQL 查询语句直接拼进 IN() 里面。当时很多站点还开着 magic_quotes_gpc,以为万事大吉,但数组绕过单引号转义的手法一出,这个假设就塌了。我见过一个 2010 年的论坛,被这个洞注出管理员密码哈希,攻击者进后台后直接传了个 webshell,整个过程不到三分钟。
变量覆盖是另一条重灾区。DZ 早期大量使用 extract() 和 parse_str(),注册全局变量。如果某个函数里先定义了 $isadmin = false,然后从 $_GET 里 extract 一遍,攻击者只要传 isadmin=1,权限判断就形同虚设。这种洞在 include/common.inc.php 里出现过不止一次。你可能会问,为什么不用 import_request_variables 的替代方案?答案很朴素:当年 PHP 社区对安全编码的共识还没形成,很多开发者觉得“能跑就行”。
文件包含和上传更是重灾区。DZ 的 include 路径有时候会拼接用户输入,比如 include $_GET['mod'].'.inc.php'。攻击者用 ../../../../etc/passwd%00 这种截断手法,或者直接包含远程 URL,就能读文件甚至执行代码。上传方面,早期头像上传功能只检查 Content-Type,改个包就能传 PHP 文件。我印象很深的是一个 2012 年的站,上传目录权限设成了 777,传上去的 .php 直接就能访问,连解析漏洞都不用找。
这些洞放在今天看,修复方案都很直接:参数化查询、白名单校验、关闭远程包含、上传重命名加权限隔离。但当年 DZ 的代码量太大,历史包袱重,补丁经常是打了一个洞又冒出另一个。比如 sql.php 的注入修了,misc.php 又出问题。攻击者甚至不需要 0day,翻翻旧版本的 changelog,把已经修过的洞在没升级的站上重放一遍,成功率依然很高。
说句主观的话,DZ 漏洞频发不全是代码质量的问题,更多是那个时代 Web 开发环境的缩影。PHP 本身在 5.3 之前对安全特性的支持很弱,开发者又习惯把逻辑和展示混在一起,一个文件几千行,变量满天飞。你让一个人去审计这种代码,他大概率也会漏掉几个 $_REQUEST 没过滤的地方。
现在 DZ 的官方版本已经很少爆出高危洞了,但老站依然大量存在。如果你还在维护一个 Discuz! 论坛,别指望“没人会盯上我”。扫站工具都是批量跑的,你的站被扫到只是时间问题。升级到最新版,关掉不必要的功能,上传目录禁止执行 PHP——这三件事做完,能挡住九成以上的自动化攻击。剩下的,就看运气了。
Tags:
上一篇:wampserver官网
下一篇:杭州网站关键词推广
相关文章
网络诈骗的真实案例
探索老周被骗走三十万那天,北京正下着入夏以来最大的一场暴雨。他坐在派出所的塑料椅上,裤脚湿透了,滴下来的水在瓷砖上汇成一滩。民警递给他纸巾,他摆摆手,声音沙哑地说:“那姑娘的声音,跟我女儿一模一样。” 骗 ...
【探索】
阅读更多能在网上贷款的银行
探索我打开中国银行手机APP,在首页点了一下“中银E贷”,额度立刻跳出来:18万7千。年利率4.35%,随借随还,按天计息。从申请到放款,全程没去网点,没交纸质材料,耗时大约四分钟。这是2024年10月的 ...
【探索】
阅读更多正在跳转美国空间v2
探索浏览器左下角那个转圈的小图标卡了三秒,然后页面猛地一白,接着跳出一行浅灰色小字:正在跳转美国空间v2。我盯着这行字,突然意识到自己已经习惯了这种“被跳转”的日常。不是网速慢,不是服务器抽风,而是某种更 ...
【探索】
阅读更多