游客发表
织梦内容管理系统的织梦登录入口,默认藏在 /dede/ 这个目录下。内容装完 DedeCMS 之后,管理后台地址就是系统 你的域名/dede/。这个路径其实可以改,登录但大多数人懒得动,织梦所以网上扫后台的内容脚本一抓一个准,专挑 /dede/ 下手。管理我自己搭的系统第一个站就吃过这个亏,上线第三天就被挂马,登录查日志发现是织梦有人直接爆破后台。
打开登录页,内容界面朴素得有点过分。管理左边一个验证码图片,系统右边三个输入框:用户名、登录密码、验证码。验证码是四位数字,早期版本甚至是纯数字不区分大小写,用 Python 写个简单脚本就能暴力识别。后来官方加了干扰线,但说实话,识别难度也没高到哪去。我试过用 Tesseract 跑,准确率大概七成,多刷几次总能过。
登录逻辑本身很简单。表单 POST 到 login.php,后端查 dede_admin 表,比对密码的 MD5 值。注意,DedeCMS 的密码存储用的是 MD5,不加盐。这意味着一旦数据库泄露,彩虹表一查就出明文。更麻烦的是,dede_admin 表里还有个 pwd 字段和 userid 字段,早期版本存在过注入点,具体哪个版本我记不太清了,大概是 5.7 之前。
说个实际遇到的情况。有次帮朋友看一个老站,后台登录死活进不去,提示“验证码错误”。换了浏览器、清了缓存都没用。后来发现是服务器时间不对,PHP 的 session 过期时间计算出了偏差,验证码生成和校验对不上。把系统时间同步一下就好了。这种问题不常见,但一旦碰上,能折腾半天。
后台登录成功后,会写入 dede_admin 表里的 logintime 和 loginip。同时生成一个 DedeUserID 的 Cookie,以及一个 DedeUserID__ckMd5 的校验值。这个校验值就是把用户 ID 和密码 MD5 拼在一起再做一次 MD5。听起来有点绕,但核心问题是:如果攻击者拿到了数据库里的密码 MD5,就能伪造这个 Cookie,直接绕过登录。所以数据库安全比后台密码本身更重要。
另外,DedeCMS 后台有个“安全提问”功能,但默认是关闭的。开启之后登录要多填一个答案,稍微增加点门槛。不过大多数人装完站根本不进系统设置里翻这些选项,默认配置用到底。我见过不少站,后台密码设成 admin123,目录也不改,验证码也不换,基本等于开门迎客。
如果你现在还在用 DedeCMS,至少做三件事:把 /dede/ 目录改名,别用默认的;后台密码设复杂点,别跟数据库密码一样;服务器上装个 fail2ban,对多次登录失败的 IP 自动封禁。这些操作花不了十分钟,但能挡掉九成以上的自动化扫描。
登录页本身没什么花哨的,就是一个入口。真正要盯的是入口后面那扇门有没有锁好。我见过太多人把精力花在模板美化上,后台却裸奔。等发现被挂马、被跳转、被薅流量的时候,再回头查登录日志,往往已经晚了。
随机阅读
热门排行
友情链接