记 FineUI 官方论坛discuz所遭受的一次真实网络攻击
可能是最近在参加 csdn 举行的那个评选,fineui 论坛吸引了一大批围观群众,也吸引了一些黑客的目光,本文会按时间顺序记录下 fineui 论坛所遭受的这次网络攻击,期望能对其他站长有所帮助。
发现异常
2013-6-22 08:56
早上起来,像往常一样打开 fineui 官网论坛(http://fineui.com/bbs/ )去发现进不去,还以为服务器又受到 ddos 攻击(因为前两天服务器连续受到攻击,也出现偶尔连不上的情况),就赶紧上 qq 准备联系服务器管理员,却发现服务器管理员已经给我留言:
还没看完留言就已经头皮发麻,真的是受到攻击了,莫非是最近选票排的靠前被盯上了(后来发现不是这样的),不由得一阵胡思乱想,数据库数据有没有丢失啊….冷静下来,看下那张查出木马的截图:
原来是 php 木马,那这些文件又是如何上传到服务器的呢?
服务器管理员的分析文档
这次要真的感谢服务器管理员 №风影㊣ 和他维护的服务器资源 http://www.kingidc.net/,他不但帮我暂时阻止了黑客的进一步攻击,而且详细分析了如何受到攻击,如下部分来自管理员的分析文档:
2013-06-21 14:03:11 w3svc129 115.239.252.29 get /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 115.236.84.185 mozilla/5.0+(windows+nt+6.2;+wow64)+applewebkit/537.36+(khtml,+like+gecko)+chrome/27.0.1453.116+safari/537.36 304 0 0 141 1534 62 2013-06-21 14:03:11 w3svc129 115.239.252.29 get /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 222.81.215.230 mozilla/5.0+(windows+nt+5.1)+applewebkit/537.1+(khtml,+like+gecko)+chrome/21.0.1180.89+safari/537.1 304 0 0 141 1194 95 2013-06-21 14:03:11 w3svc129 123.157.149.29 post /demo/upload/635074464204358063_ice.aspx action=edit&src=d%3a%5chostingspaces%5cfineuico%5cfineui.s1.kingidc.net%5cwwwroot%5c%5cindex.html 80 - 222.136.235.23 mozilla/5.0+(compatible;+msie+9.0;+windows+nt+6.1;+trident/5.0) 200 0 0 10497 48738 1008 2013-06-21 14:03:11 w3svc129 115.239.252.29 get /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 222.81.215.230 mozilla/5.0+(windows+nt+5.1)+applewebkit/537.1+(khtml,+like+gecko)+chrome/21.0.1180.89+safari/537.1 304 0 0 141 1161 98 2013-06-21 14:03:11 w3svc129 115.239.252.29 get /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 119.96.106.251 mozilla/5.0+(windows+nt+6.1;+rv:6.0.1)+gecko/20100101+firefox/6.0 200 0 0 14241 1190 67 2013-06-21 14:03:11 w3svc129 115.239.252.29 get /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 222.81.215.230 mozilla/5.0+(windows+nt+5.1)+applewebkit/537.1+(khtml,+like+gecko)+chrome/21.0.1180.89+safari/537.1 304 0 0 141 1161 100
这是我根据文件修改时间(日志内使用的是utc时间),在日志内找到的相关操作:
2013-06-21 14:03:11 w3svc129 123.157.149.29 post /demo/upload/635074464204358063_ice.aspx action=edit&src=d%3a%5chostingspaces%5cfineuico%5cfineui.s1.kingidc.net%5cwwwroot%5c%5cindex.html 80 - 222.136.235.23 mozilla/5.0+(compatible;+msie+9.0;+windows+nt+6.1;+trident/5.0) 200 0 0 10497 48738 1008
显然,这个人222.136.235.23在您站点内利用上传功能上传进了一个aspx木马篡改了你的首页文件。
/demo/upload/635074464204358063_ice.aspx
我意外发现,在/demo/upload/这个目录内发现了个马,,,
upload这个目录内,有好多好多文件。。。可能是人家体验程序的时候上传上来的。
这几天的日志有点异常,不知道是不是有人在做坏事。。。。
我只有继续分析那个ip的访问日志了,将日志导入excel然后筛选:
逐行查看,发现在他之前一直在 :/demo/form/fileupload.aspx 这个页面来回上传文件。
从 338行 post了一个数据之后,就成功将他aspx木马传入了你的upload目录内:
13:08:09 |
post |
/demo/form/fileupload.aspx |
13:08:13 |
get |
/demo/upload/635074456895620028_safer.aspx |
13:08:16 |
get |
/demo/upload/635074456895620028_safer.aspx |
我也随之测试了一下 /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 学习,做一个有道德的黑客(自己爽一把没关系,不要破坏别人的数据)!
上一篇: CAD图形怎么转换为面域?
下一篇: 仿佛身体被掏空