我也随之测试了一下 /demo/form/fileupload.aspx 这个页面,上传php,aspx文件都可以,而且穿了后,文件路径就在下放输出的图片路径内可以获取:
我将我的分析和日志导出结果发给你,望能尽快修复(验证上传文件类型)。这个可能是之前上传php木马发包的一个入口。
为了防止有人继续用这个漏洞传入木马或者篡改数据,我暂时帮你重命名了。。
/demo/form/fileupload.aspx -> /demo/form/fileupload__.aspx
你看这个人的IP,应该就是我上面提到的IP了。他应该已经拿到了MYSQL的密码,进入了数据库修改了权限了。
有道德的黑客
经过上面的分析,已经很明显了,黑客的入侵途径大致如下:
1. 通过 http://fineui.com/demo/#/demo/form/fileupload.aspx 上传一个木马 php 文件;
2. 通过此木马获取论坛权限并篡改首页;
3. 将自己设为论坛管理员。
其实我最担心的是他拿到管理员权限后会不会一下子把用户全删掉,或者做其他一些批量操作,这就麻烦了。
后来发现这位黑客没有这么做,仅仅是把自己改成管理员爽了一把,我的心中不由的升气一丝莫名的欣慰,感觉也没那么担心了,因为这是一位:
有道德的黑客:ice
修复被攻击的网站
接下来,我的做法是:
1. 禁止用户 ice 登陆论坛;
2. 修改 FineUI 的官方示例,只允许用户上传图片文件,而不能上传任何其他文件。
新增的限制文件上传的代码如下:
protected readonly static List<string> VALID_FILE_TYPES = new List<string> { "jpg", "bmp", "gif", "jpeg", "png" }; protected static bool ValidateFileType(string fileName) { string fileType = String.Empty; int lastDotIndex = fileName.LastIndexOf("."); if (lastDotIndex >= 0) { fileType = fileName.Substring(lastDotIndex + 1).ToLower(); } if (VALID_FILE_TYPES.Contains(fileType)) { return true; } else { return false; } } protected void btnSubmit_Click(object sender, EventArgs e) { if (filePhoto.HasFile) { string fileName = filePhoto.ShortFileName; if (!ValidateFileType(fileName)) { Alert.Show("无效的文件类型!"); return; } fileName = fileName.Replace(":", "_").Replace(" ", "_").Replace("\\", "_").Replace("/", "_"); fileName = DateTime.Now.Ticks.ToString() + "_" + fileName; filePhoto.SaveAs(Server.MapPath("~/upload/" + fileName)); labResult.Text = "<p>用户名:" + tbxUseraName.Text + "</p>" + "<p>头像:<br /><img src=\"" + ResolveUrl("~/upload/" + fileName) + "\" /></p>"; // 清空表单字段 SimpleForm1.Reset(); } }
我还是大意了!
可能是发现这位 ice 很有善意,我居然忘记修改可能已经被攻破的管理员密码。直到晚上我才发现这回事!
因为 ice 有把自己设为了管理员,并发了一个帖子告诉我“密码是12345”,很遗憾我把这个帖子给删了,要不然贴出来也博大家一笑!
很无奈的用别人告诉我的密码 12345 登陆我自己管理的网站,重新把 ice 的所有资料删除。当时我还不知道 ice 是怎么重新获取管理员权限的,郁闷的一屁!
后来通过 Discuz 的日志,我发现了自己的这个错误:
可以看到如下过程:
1. 早上 10:12,我登陆后将 ice 设为禁止访问;
2. 仅仅过去一个小时 11::16,ice 用我的账号登陆解禁 ice,并将 ice 设为管理员;
3. 我在晚上 22:24,才发现这个问题,并重新删除 ice 的所有资料。
之后,我修改了所有相关密码!
结论
首先是要保证自己的代码没有漏洞,涉及用户输入和用户上传的地方一定要特别注意!
其次是希望每一个黑客都能向 ice 学习,做一个有道德的黑客(自己爽一把没关系,不要破坏别人的数据)!
更多关于Discuz论坛内容来自木庄网络博客
标签:Discuz论坛
相关阅读 >>
discuz中用到的javascript函数解析 font color=red原创font第22页
discuz 7.0伪静态rewrite的.htaccess规则
更多相关阅读请进入《Discuz论坛》频道 >>