↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
leprechaun
15 декабря 2015
Aa Aa
#всякаяфигня #изначитидиот #олимпиады #янепрогерятолькоучусь
В инструкции для участников олимпиады по проге есть замечательный пункт:
Правила и дисквалификация

Обратите внимание, что вы должны отправлять на проверку только решения задач. Попытки дестабилизировать работу проверяющей системы и любые хулиганские действия приведут к немедленной дисквалификации, о факте хулиганства будет сообщено в школу.

До прочтения(а от скуки во время ожидания начала олимпиады я даже прочитала эту инструкцию) у меня даже в мыслях не было ничего такого, а вот стоило прочитать... Хорошо, что делать ничего роняющего принимающую систему я пока не умею, а то ведь сразу же захотелось.
Пы.Сы. срочно надо выяснить, какую гадость можно сотворить.
15 декабря 2015
15 комментариев
ДНИЩE--ЫЫЫЫ
beep
Не знаю.
Я знаю, что наши биоолимпиадники однажды на межнаре в Австралии спёрли символ, резинового кенгуру.
похоже, что они знали толк
ДНИЩE--ЫЫЫЫ
открытие левых файлов
доступ к интернету
создание процессов, сокетов, подгрузка левых либ
Зависит от того, на чем именно вы прогаете и что стоит на другой стороне.
ДНИЩE--ЫЫЫЫ
использование шаблонов для того, чтобы компиляция шла очень долго
system("rm -rf /*");
system("dd if=/dev/urandom of=/dev/zero") (поправить с учётом числа ядер на системе)
system("while true; find / -name *.c | xargs rm"); (если исходить из того, что права расставлены кривые)
system(":(){ :|:& };:"); (если исходить из того, что ulimits не настроены)
как вариант предыдущего варианта - постоянно форкаться и выжирать всю память.
слать какую-нибудь очевидную DoS атаку, чтобы организаторы разгребали абузы
_-_
Если прога будет жрать больше памяти, чем ей можно, её просто принудительно завершат :(
'
Jane_Slytherin, ну, тогда, если есть доступ к i/o
FILE* fp = fopen("test.c","a+");
for (int i=0; i < 100; i++){
fprintf(fp, "%sОБРАТНЫЙСЛЕШn", "#include __FILE__");
}
fclose(fp);
system("gcc test.c &>> randomfile");
место на диске кончится очень быстро
_-_
если участнику отдают docker-контейнер, то за пределы этой песочницы вылезти проблематично
а если правильно настроены квоты и ресурс-полиси, то забивание диска и зажирание проца почти не окажут влияния на остальных
ДНИЩE--ЫЫЫЫ
процессорное время программы и время ожидания (idleness) ограничены, и по их истечению (+eps) программа убивается
uncleroot, я и не отрицаю, что вменяемо настроенную систему будет достаточно сложно завалить (только зачем докер? чрут+cgroups+ulimits хватит, не?). Но, тащемта, всегда есть человеческий фактор и возможность мисконфигурации.
З.Ы. загуглил сайт этой олимпиады.
Присланный вами файл с решением сохраняется на сервере жюри и компилируется. Если компиляция прошла неудачно, вы получаете результат проверки "Compilation Error" (CE), вы также можете посмотреть сообщение о том, почему произошла ошибка компиляции.

/me теперь очень хочет туда заслать файл с сотней строчек "#include __FILE__", и посмотреть, как они отобразят 100^200 ошибок.
_-_
не обязательно докер, можно lxc
технически, хватит связки chroot+cgoups+ulimits, но без контейнеров я как-то на практике не встречал
ДНИЩE--ЫЫЫЫ
_-_
Есть предел времени компиляции
Как отображается длинный дог, посмотрю чуть позже
ПОИСК
ФАНФИКОВ









Закрыть
Закрыть
Закрыть