数据库备份功能默认备份在目录"backup_随机字符串"
文件名为"年月日_随机字符串.png"
windows下短文件名访问文件或目录只需要知道前6个字符 backup正好6个 就可以通过
http://localsite.com/data/backup~1/ 判断备份目录是否存在
进而通过爆破年月日来寻找数据库备份文件
http://localsite.com/data/backup~1/190814~1.sql
一年也就365个请求 不要几秒钟的事
这个难道不是iis的漏洞吗?php不是多数运行在linux+NGINX吗?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@MaiKuraki 正解,而且微软很早就修复了这个漏洞,楼主怕是没有及时更新啊。
@MaiKuraki @坑晨 首先这“短文件名”这不是一个漏洞 这是windows的一个“特性” 其次这跟iis也没关系 只要是windows下,不管是iis还是apache还是nginx都可以用短文件名来直接访问文件。还有php是否多数运行于linux跟这个issue本身没有任何关系,只要你没在介绍中明确说明discuz程序不适用于windows 那就默认存在windows用户,那这个问题就不能无视。
本地搭个环境不费事,测试过了再来讨论
http://bbs.sy*****lub.com.cn/data/backup~1/170531~1.sql
http://www.b**.me/data/backup~1/161103~1.sql
http://www.lw***iao.com/data/backup~1/171212~1.sql
http://www.w***zb.com/data/backup~1/161024~1.sql
以上来源于百度搜索 powered by discuz 随机点开站点用forum.pHp是否可以访问判断是否windows系统 然后用脚本遍历160101~190801备份文件
声明 脚本仅用head探测文件是否存在 并未下载获取任何数据 请不要模仿本操作获取任何非自营站点的数据 超过5条个人信息就可入刑!
如果这不算个问题,那么要怪站长不用linux咯?那我建议install文件加个判断 系统是windows直接退出比较好。
@坑晨 sorry dz漏洞我也挖了十几个了 这么解释不清楚的还真是第一个。我早说了我承认这是系统配置的问题,我也说了在默认情况下apache和nginx存在这个问题,我也承认了本地没有iis环境 在下载。本身就没有抬杠的意思,只是问题确实存在,而且影响了部分站长,不说量大量少吧 至少百度随随便便就能挖出个5个案例来。你的解决办法没有错,但是作为discuz来说 他没法控制用户的环境,或者说他只能控制有限的一部分,在安装discuz的时候会有环境检测这个环节,gd库没安装 xml库没安装都会导致安装过程终止。这两个会导致系统无法运行,我的问题会导致系统敏感信息泄露,也算个不小的事儿吧?那么你安装的时候做个检查,或者命名函数简单修改一下(也不影响使用也不用动数据库)。这个解决办法难道比默认让所有windows+apache/nginx用户去搞系统配置更麻烦吗?一个是可控的代码修改 一个是不可控的用户环境,怎么方便怎么解决啊。
@索马里的海贼 您测试一下,如果在后台首页安全提示位置加如下代码,能否起到缓解作用?
我不确定这个测试文件和文案好不好,如果有更好的测试文件或者文案,欢迎您告知我。
或者如果您愿意,您直接PR也可以。
if (file_get_contents($_G['siteurl']."data/stat_s~1.xml")) {
$securityadvise .= '<li style="color: red;">您的服务器支持了 <u>通过8.3兼容格式的短文件名访问文件</u> 功能。此功能的开启会导致附件、数据库备份泄露等风险,强烈建议您根据 <a>更改手册</a> 对服务器配置进行修改。腾讯云计算(北京)有限责任公司不对您在此模式下继续运行程序出现的任何安全问题负责。</li>';//Todo: 提示信息写入语言包
}
计划通过 !835:新增 底层安全模块,缓解短文件名和空 Host 访问安全隐患 修复此问题。
登录 后才可以发表评论