#17
帖子
由 cosechy » 2009-08-17 20:56
附以前在某处说的对评测器来说一大堆可能的安全问题整理
1.getchar() (不计入user和sys时间)
2.fork() (最简单的死机方法。。不需要任何权限。。)
3.{$inline on}procedure a;inline;begin end;procedure b;inline;begin a;a;a;a;a;a;a;a;a;a end;procedure c;inline;begin b;b;b;b;b;b;b;b;b;b end;procedure d.........;begin k;k;k;k;k;k;k;k;k;k end (pascal,编译器占用过多内存)
4.system("rm -rf ........") (简单的破坏行为)
5.system("at now <<<'......>/tmp/xxx;sleep 0.2s;kill -cont '$$;kill -stop $$; cat /tmp/xxx") (利用at命令绕过所有资源限制)
6.printf("%c",14) (毁掉终端的输出)
7.被测程序名叫gdm X11 bash等等的情况 (当时某评测器是用killall命令杀掉进程的)
8.多线程评测(当然也会有多个sleep进程) (当时说的是bash写的评测器,指同时运行多个评测器的进程)
9.调用劣质X程序利用某些驱动问题造成死机。。
10.调用sudo卡掉终端(sudo不用root帐号杀不掉,而且不管你怎么搞都可以绕过标准输入的重定向,直接在终端读数据)
11.测试过程中访问和滥用网络(比如被黑客当作跳板。。)
12.偷到某些有意义的系统日志和某些不安全的密码,比如firefox的配置,某些php程序的配置
13.在/tmp写入大量数据塞满硬盘
14.在程序里把输出文件链接到某些设备文件,没有权限的话至少可以用/dev/zero或者/dev/random之类的无限长文件卡掉评测器