多是最近在参加 CSDN 举行的那个评选,FineUI 论坛吸引了一大批围观群众,也吸引了一些黑客的目光,本文会按时间顺序记录下 FineUI 论坛所遭受的此次网络攻击,指望能对其余站长有所帮助。php
2013-6-22 08:56html
早上起来,像往常同样打开 FineUI 官网论坛(http://fineui.com/bbs/ )去发现进不去,还觉得服务器又受到 DDOS 攻击(由于前两天服务器连续受到攻击,也出现偶尔连不上的状况),就赶忙上 QQ 准备联系服务器管理员,却发现服务器管理员已经给我留言:git
还没看完留言就已经头皮发麻,真的是受到攻击了,莫非是最近选票排的靠前被盯上了(后来发现不是这样的),不禁得一阵胡思乱想,数据库数据有没有丢失啊….数据库
冷静下来,看下那张查出木马的截图:服务器
原来是 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 62ide
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 95post
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 的官方示例,只容许用户上传图片文件,而不能上传任何其余文件。
新增的限制文件上传的代码以下:
1: protected readonly static List<string> VALID_FILE_TYPES = new List<string> { "jpg", "bmp", "gif", "jpeg", "png" };
2:
3: protected static bool ValidateFileType(string fileName)
4: {
5: string fileType = String.Empty;
6: int lastDotIndex = fileName.LastIndexOf(".");
7: if (lastDotIndex >= 0)
8: {
9: fileType = fileName.Substring(lastDotIndex + 1).ToLower();
10: }
11:
12: if (VALID_FILE_TYPES.Contains(fileType))
13: {
14: return true;
15: }
16: else
17: {
18: return false;
19: }
20: }
1: protected void btnSubmit_Click(object sender, EventArgs e)
2: {
3: if (filePhoto.HasFile)
4: {
5: string fileName = filePhoto.ShortFileName;
6:
7: if (!ValidateFileType(fileName))
8: {
9: Alert.Show("无效的文件类型!");
10: return;
11: }
12:
13:
14: fileName = fileName.Replace(":", "_").Replace(" ", "_").Replace("\\", "_").Replace("/", "_");
15: fileName = DateTime.Now.Ticks.ToString() + "_" + fileName;
16:
17: filePhoto.SaveAs(Server.MapPath("~/upload/" + fileName));
18:
19:
20: labResult.Text = "<p>用户名:" + tbxUseraName.Text + "</p>" +
21: "<p>头像:<br /><img src=\"" + ResolveUrl("~/upload/" + fileName) + "\" /></p>";
22:
23:
24: // 清空表单字段
25: SimpleForm1.Reset();
26: }
27: }
多是发现这位 ice 颇有善意,我竟然忘记修改可能已经被攻破的管理员密码。直到晚上我才发现这回事!
由于 ice 有把本身设为了管理员,并发了一个帖子告诉我“密码是12345”,很遗憾我把这个帖子给删了,要否则贴出来也博你们一笑!
很无奈的用别人告诉个人密码 12345 登录我本身管理的网站,从新把 ice 的全部资料删除。当时我还不知道 ice 是怎么从新获取管理员权限的,郁闷的一屁!
后来经过 Discuz 的日志,我发现了本身的这个错误:
能够看到以下过程:
1. 早上 10:12,我登录后将 ice 设为禁止访问;
2. 仅仅过去一个小时 11::16,ice 用个人帐号登录解禁 ice,并将 ice 设为管理员;
3. 我在晚上 22:24,才发现这个问题,并从新删除 ice 的全部资料。
以后,我修改了全部相关密码!
首先是要保证本身的代码没有漏洞,涉及用户输入和用户上传的地方必定要特别注意!
其次是但愿每个黑客都能向 ice 学习,作一个有道德的黑客(本身爽一把不要紧,不要破坏别人的数据)!
喜欢这篇文章,就不要忘记点击页面右下角的【推荐】按钮哦。