记 FineUI 官方论坛discuz所遭受的一次真实网络攻击


当前第2页 返回上一页

我也随之测试了一下 /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论坛

返回前面的内容

相关阅读 >>

站长最喜欢的一些建站程序、cms介绍

discuz中用到的javascript函数解析 font color=red原创font第22页

2019 php面试题与常用技巧大全

nginx伪静态配置和常用rewrite伪静态规则集锦

discuz 7.0伪静态rewrite的.htaccess规则

如何使windows7系统中将ie9轻松降级到ie8

nginx 伪静态rewrite正则资源汇总

discuz的php防止sql注入函数

从康盛产品(discuz)提取出来的模板类

nginx下301重定向域名的方法小结

更多相关阅读请进入《Discuz论坛》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...