分享一个我搭的全能在线IT工具箱给佬友们玩耍!

大家好!我最近在抱抱脸空间上搭建了一个全能在线工具箱,特地分享出来让各位佬友玩玩!
体验链接:
https://ittools-box.hf.space

主要功能

  1. JSON工具:格式化、压缩、生成实体类、JSON和XML互转等。
  2. 格式转换:支持HTML、CSS、JS等代码的格式化、压缩,HTML和Markdown、正则表达式工具等。
  3. 加解密工具:MD5、AES、Base64等加密解密,密码、UUID、条形码生成。
  4. 文本处理:字数统计、简繁转换、拼音转换、Unix时间戳转换等。
  5. 网络工具:IP地址查询、WebSocket测试、浏览器信息获取等。
  6. 站长辅助:Gzip压缩检测、死链检测、Whois查询、Meta标签优化。
  7. 计算工具:多种单位换算、科学计算器。
    ……
    工具箱简单易用,功能齐全,支持多端使用。

:point_right: 抱抱脸空间一键复制

如果你也希望部署一个,可以在在抱抱脸空间一键复制,请访问以下链接。

GitHub项目地址
https://github.com/foss-android/toolbox

今日代码安全事件概要:

今天在浏览论坛时,看到一则由tmwl大佬发来的评论,内容如下:

看到大佬提醒代码中可能存在木马,我着实吓了一跳,尤其是当我发现该代码是加密的。随后,我询问了GPT,它告诉我从文件名来看,应该是一个显示时钟功能的脚本。

几分钟后,agromgt大佬发来了他的解密结果:

在看到解密后的代码后,我立马进行了分析,未发现恶意行为。为了安全起见,我第一时间在GitHub上将加密的代码替换为agromgt大佬的解密版本,并通过GitHub Action重新构建了镜像。同时,我也更新了部署环境,将原来的镜像进行了替换,并更改了网址以确保缓存清除。

为进一步确保没有安全隐患,我开启了浏览器的开发者工具抓包,确认解密后的脚本已经成功替换,且未发现任何异常网络请求。

今天的这次代码安全事件告一段落。如果其他朋友发现还有任何问题,请随时指正。

109 个赞

这里还提供离线版 Docker tar 包部署 toolbox

首先,访问以下GitHub下载离线的.tar 包:

https://github.com/foss-android/docker2tar/releases/tag/toolbox

然后,在 CMDPowerShell 中,执行以下命令来加载 .tar 包并运行容器:

docker load -i path_to_downloaded/toolbox.tar
docker run -d --restart always --name toolsbox -p 8080:8080 toolbox:latest

path_to_downloaded 替换为下载的 toolbox.tar 文件的实际路径。

最后,在浏览器中访问 http://localhost:8080 即可使用 toolbox

8 个赞

感谢大佬分享!这里链接一个在serv00上部署的,serv00 免费部署工具箱,让你的serv00不在吃土

1 个赞

我也是受到那个帖子启发的,今天也是尝试了好久,最后成功了,抱抱脸平台服务器确实是配置很高,唯一的缺点是它的dockerfile不是很好写,跟常规的写起来有区别,麻烦很多。

3 个赞

帮顶,能否有一键docker版呀~ :clown_face:

4 个赞

:smiling_face_with_three_hearts:如果想弄那种输入一个网址,就能把里面的网址完整保存下来,有什么思路吗?比如OpenAI的官方文档,直接下载来喂给ai就不用自己查这么麻烦了。传统的思路是遍历获取左侧导航栏的每个单独网址然后再下载内容,有没有这种一键获取的工具 :melting_face:

2 个赞

你可以试试这个一键安装命令

docker run -d --restart always --name toolbox -p 8080:8080 ghcr.io/foss-android/toolbox:latest
2 个赞

toolbox/public/static/script/pcjs/shizhong.js at main · foss-android/toolbox · GitHub

这个文件是马,你是真不怕中招

2 个赞


问了一下GPT,这个代码的作用应该是实现时钟显示的功能。你是从哪里看得出挂马的呢?

解密出来了,貌似不是病毒,我不是专业的,问的ChatGPT

总结
window.onload = function() {
    var winHeight = document.documentElement.clientHeight;
    document.getElementsByTagName('body')[0].style.height = winHeight+'px';

    var $clock = document.getElementById('clock'),
        $date = document.getElementById('date'),
        $hour = document.getElementById('hour'),
        $min = document.getElementById('min'),
        $sec = document.getElementById('sec'),
        oSecs = document.createElement('em');
    for (var i = 1; i < 61; i++) {
        var tempSecs = oSecs.cloneNode(),
        pos = getSecPos(i);
        if(i%5==0){
            tempSecs.className = 'ishour';
            tempSecs.innerHTML = ''+(i/5)+'';
        }
        tempSecs.style.cssText='left:'+pos.x+'px; top:'+pos.y+'px; -webkit-transform:rotate('+i*6+'deg);';
        $clock.appendChild(tempSecs);
    }

    // 圆弧上的坐标换算
    function getSecPos(dep) {
        var hudu = (2*Math.PI/360)*6*dep,
        r = 200; //半径大小
        return {
            x: Math.floor(r + Math.sin(hudu)*r),
            y: Math.floor(r - Math.cos(hudu)*r),
        }
    }


    ;(function() {
        // 当前时间
        var _now = new Date(),
        _h = _now.getHours(),
        _m = _now.getMinutes(),
        _s = _now.getSeconds();

        var _day = _now.getDay(),
						weekAry = ['七','一','二','三','四','五','六'];
			

        $date.innerHTML = _now.getFullYear()+'-'+(_now.getMonth()+1)+'-'+_now.getDate()+' 星期'+weekAry[_day];
        //绘制时钟
        var gotime = function(){
            var _h_dep = 0;
            _s++;
            if(_s>59){
                _s=0;
                _m++;
            }
            if(_m>59){
                _m=0;
                _h++;
            }
            if(_h>12){
               _h = _h-12;
            }

            //时针偏移距离
            _h_dep = Math.floor(_m/12)*6; 

            $hour.style.cssText = '-webkit-transform:rotate('+(_h*30-90+_h_dep)+'deg);';
            $min.style.cssText = '-webkit-transform:rotate('+(_m*6-90)+'deg);';
            $sec.style.cssText = '-webkit-transform:rotate('+(_s*6-90)+'deg);';

        };

        gotime();
        setInterval(gotime, 1000);
    })();

};
3 个赞

#网络安全添加


谢谢佬友,已经把你解密的代码替换了原本的代码,正在构建docker镜像中

1 个赞


佬友,把原本的加密代码替换成你解密的那个代码之后,时钟正常运行(上图所示),经过抓包之后,确认已经替换了成功了(下图所示),今天真的把我给吓到了,网络安全无小事!

3 个赞

F-droid 你们是真正的神

1 个赞

感谢大佬的分享

感谢大佬分享!

主要是当时用了几个扫描软件,都报蠕虫virus.js.qexvmc.1
而且正常时钟文件谁会加密混淆啊 :joy:太让人起疑了,加上软件报毒,我也以为是毒
还是有大佬解密更放心点
还得是这里的佬友实力强啊

2 个赞

我也搭了一个这个,而且自己也加了功能,在条形码那里增加了生成二维码

1 个赞

#快问快答移除

大佬厉害,一直有在用您的软件商店,感谢分享~