• 1763阅读
  • 40回复

论坛被攻击?部分文件被修改加载脚本(文件检查) [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看该作者 20楼 发表于: 2022-11-17 20:52:09 星期四  点亮(0)
楼上的帖子刚刚编辑完。本来只是昨晚一个测试帖,虽然提示什么xml有问题(在网上搜索也没找到可用的解决方案),最后还是成功发布了,但想编辑似乎就不行了,也没有测试。原帖子内容没什么实际意义,所以进行了编辑。后来想到时间上不太合适(昨晚回的帖子里提到了“昨晚”,到底是昨晚还是前晚呢?),想把帖子内容剪切出来,但由于上传了附件(文字可以搬到其它地方,但附件图片没法动,除非删除了),只好作罢。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 21楼 发表于: 2022-11-17 21:59:16 星期四  点亮(0)
这几天论坛不能回帖,但一直没闲着,有一个星期了吧,到很晚才睡,想想也不容易。除了想如何解决,也一直在研究如何才能在后台把最近修改过的文件显示出来(自己主动改的文件心里有数,主要是想看还有哪些被动修改的),主要是php、js、htm和html文件。

在admin/filecheck.php文件中指定了需要检查的文件夹以及检查的文件类型。下面是最后修改好的这个文件中的部分代码,添加了部分文件夹以及文件类型。这是测试期间的代码,每次核对一个文件夹。用搜索软件统计上述四种文件的数量,然后添加或修改文件夹名称和文件类型,再在后台查看,数量是否对得上。最后又重新修改一遍代码,也就是还是每次测试一个文件夹,以确认代码修改无误。本地论坛测试期间,除了根目录少了5个文件外(具体没核对,测试结果差不多就可以了)(根目录没问题,见楼下说明),基本都一致。唯一特别的是mode目录,它除了显示上述四种文件外,还有其它的文件。后台检查是1889个文件,刚才查看文件夹属性,是1890个文件,少许出入可能有新的文件生成也说不定,所以它是把所有的文件都显示出来了。是不是很特别?作为论坛一个也算是重点需要关注的文件夹,它想显示多少就显示多少吧。(说明:前面这些文字就不加删除线了。不是特别,是自己没仔细检查,“l”不知道怎么成了“|”竖线了?见32楼)
filecheck.php
    //safefile('./','\.php|\.html|\.htm',0);
    //safefile('5337music/','\.php');
    //safefile('actions/','\.php');
    safefile('ad/','\.js|\.html|\.htm');
    //safefile('admin/','\.php');
    //safefile('api/','\.php|\.html');
    //safefile('apps/','\.php|\.htm');
    //safefile('cbhook/','\.php|\.htm');
    //safefile('hack/','\.php|\.htm|\.html');
    //safefile('highslide/','\.js');
    //safefile('hook/','\.php');
    //safefile('html/','\.php|\.htm|\.html');
    //safefile('js/','\.js|\.htm|\.html');
    //safefile('kefu/','\.js');
    //safefile('lang/','\.php|\.htm|\.js');
    //safefile('lib/','\.php');
    //safefile('m/','\.php|\.htm');
    //safefile('mode/','\.js|\.php|\.htm|\.htm|');//这里写错了
    //safefile('require/','\.php');
    //safefile('simple/','\.php');
    //safefile('system/','\.js');
    //safefile('template/','\.php|\.htm');
    //safefile('u/','\.js|\.htm|\.html|\.php');
    //safefile('uc_client/','\.php');
下面是测试期间的简单统计,也做个记录,纪念吧。
目录后台统计php(手)js(动)htm(统)html(计)
根目录 10695 65
actions 135
ad 4
admin114
api24 22 2
apps190 93 97
cbhook30 30
hack260 153 93 14
highslide 12 12
hook6
html179 1 127 51
js150 148 1 1
lang 28 211 6
lib488 488
m77 42 35
mode1889(948) 510 57 367 14
require 121 121
simple 4
system 1
template 42130 391
u 125 672 56
uc_client 9

=================分隔线====================
safefile('mode/','\.js|\.php|\.htm|\.htm|');//这里写错了(本应该是“l”,不知道怎么就成了“|”竖线?)所以测试期间的后台统计数据也错了。32楼有说明。2022.11.18 20点14分
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 22楼 发表于: 2022-11-17 22:16:36 星期四  点亮(0)
刚才核对根目录文件,没有统计错,不是少了5个。当初统计网页文件是直接看的文件图标(没有分html和htm),16个。因为没法用软件搜索根目录,因为结果是整个论坛的对应文件数量。刚才修改文件夹属性,让扩展名显示出来,原来其中包含了5个shtml文件,怪不得,数量有点儿对不上,原来是我统计错了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 23楼 发表于: 2022-11-17 22:19:51 星期四  点亮(0)
那要不要把shtml文件也加进去呢?
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 24楼 发表于: 2022-11-17 22:32:38 星期四  点亮(0)
21楼表格数据添加完成,只有mode目录特别,不知道怎么回事。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 25楼 发表于: 2022-11-17 22:59:11 星期四  点亮(0)
测试期间发现,有的时候后台统计数量,和自己记录在纸上的统计数量对不上。最后发现,因为文件夹名称前面有safefile,而它似乎是一个函数,因为在同一文件(filecheck.php)的后面,其完整代码为:
  1. function safefile($dir,$ext='',$sub=1){
  2.     global $md5_a;
  3.     $exts = '/('.$ext.')$/i';
  4.     $fp = opendir($dir);
  5.     while($filename = readdir($fp)){
  6.         $path = $dir.$filename;
  7.         if($filename!='.' && $filename!='..' && (preg_match($exts, $filename) || $sub && is_dir($path))){
  8.             if($sub && is_dir($path)){
  9.                 safefile($path.'/',$ext);
  10.             } else{
  11.                 $md5_a[$path] = md5_file($path);
  12.             }
  13.         }
  14.     }
  15.     closedir($fp);
  16. }
代码不理解是什么意思,但里面提到了md5和md5文件,也就是safefiles.md5。里面的内容是这样一行一行的:
6579981de477fffd96e75d8b081f40e1    ./active.php

前面是文件的md5值(不知道怎么算出来的,也不用去研究,似乎有网站可以做到),后面是对应的文件。在后台“程序文件检查”里会校验文件的md5值,如果修改过,自然这个值就有变化,所以会提示“文件被修改”。实际上这个没什么太大的意义。

经过查看在后台列出来的文件,我发现,只要是safefiles.md5里面提到的文件,后台列表里就没有(打字到这里,我也不确定我说的是否正确)。重命名这个文件,就没法检查了,会提示什么校验文件丢失什么的。那好办,只保留一行就可以了啊,也就是只保留一个文件的检验码。

经过查看,以及和原始安装文件对比,确定ck.php没有修改过,最起码文件内容是完全一样的,所以最后的safefiles.md5文件里只有一行:
1d6ae8565893957a0f900a31412a7aff    ./ck.php

但在后台这个文件还是被标注了“文件被修改”。无所谓,内容没有变化,应该是修改时间不同了,所以md5不一样了,还是前面说的,没有什么实际意义,提示就提示呗。其实,完全可以删除检查safefiles.md5文件的有关代码,或者也可以修改模板文件以删除后台的“文件状态”列,因为只有ck.php会被检查,所以除了唯一它的“文件被修改”外,其余所有文件都是“未知文件”,也没有“文件丢失”。没什么实际意义,但目前也没删除,反正基本都是青一色的“未知文件”(只有一个ck.php文件被修改),而且也不是我们需要关注的地方。

实际需要查看的是我们自行添加的“状态”列,如果这里显示“文件被修改”,那我们就要核对下,是我们自己主动修改的,还是被恶意修改的,这也是这几天经过努力才实现的。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 26楼 发表于: 2022-11-17 23:15:36 星期四  点亮(0)
  1. } elseif ($adminitem == 'filecheck') {
  2.     /*程序文件检查*/
  3.     if(!$files = readover('admin/safefiles.md5')){
  4.         adminmsg('safefiles_not_exists');
  5.     }
就是后面这三行,我现在倒不确定如果直接删除是否合适了,因为后面还有提到$files,而再往前就没有了。不纠结这个了,反正没有删除,也没有删除的意思。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 27楼 发表于: 2022-11-17 23:19:08 星期四  点亮(0)
template/admin/cp_lang_cpmsg.php
'safefiles_not_exists'            => '校验文件不存在!',
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 28楼 发表于: 2022-11-17 23:20:18 星期四  点亮(0)
不早了,准备去睡觉了。儿子今天过大周放假,我得回东屋去睡了。这几天忙论坛的事儿,一直都在这屋睡的,好几天了吧。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线未来首先

只看该作者 29楼 发表于: 2022-11-18 10:08:28 星期五  点亮(0)
为什么会被攻击?

人被无理攻击是因为那人优秀。这个论坛也优秀所以被攻击?
一个人的生命中,应该以:
上帝第一
家庭第二
事业第三
为生活的优先次序。