Size: a a a

2019 November 06

AM

Aleksei Morozov in Python Flask
Проблему решил вот так python -m pip install Flask-WTF --user
источник

AM

Aleksei Morozov in Python Flask
Извиняюсь за лишнее бесспокойство
источник

MM

Marat Mustafin in Python Flask
Зачем ты писал --user, япросто хочу узнать, не знаю для чего нужно
источник

A

Alex in Python Flask
Marat Mustafin
Зачем ты писал --user, япросто хочу узнать, не знаю для чего нужно
он скорее всего как и ты ранее нашел способ заткнуть проблему не разобравшись в проблеме.
источник

A

Alex in Python Flask
что делает --user ты можешь почитать из pip --help
источник

MM

Marat Mustafin in Python Flask
😂
источник

MM

Marat Mustafin in Python Flask
Не,я разобрался😀
источник

AM

Aleksei Morozov in Python Flask
ну не смешно же, вспомните как сами учились
источник

K

Koote in Python Flask
Aleksei Morozov
Проблему решил вот так python -m pip install Flask-WTF --user
очень странно что ты решил ее именно так. У тебя активировано виртуальное окружение?
источник

АП

Агент Печенька in Python Flask
Aleksei Morozov
ну не смешно же, вспомните как сами учились
А мы и не смеёмся. Вспоминаю: я беру и читаю всю доступную информацию.
источник

A

Alex in Python Flask
Aleksei Morozov
ну не смешно же, вспомните как сами учились
а кто смеется?
источник

K

Koote in Python Flask
кто в  Rude Python был тот вообще не смеется
источник

AM

Aleksei Morozov in Python Flask
Koote
очень странно что ты решил ее именно так. У тебя активировано виртуальное окружение?
активировано
источник

MM

Marat Mustafin in Python Flask
Koote
кто в  Rude Python был тот вообще не смеется
Это канал?
источник

K

Koote in Python Flask
Marat Mustafin
Это канал?
нет, это страшное место
источник

MM

Marat Mustafin in Python Flask
Зачемони унижают джанго?)
источник

АП

Агент Печенька in Python Flask
Потому что джанга говно.
источник

K

Koote in Python Flask
Marat Mustafin
Зачемони унижают джанго?)
зочем они унижают фласк
источник

MM

Marat Mustafin in Python Flask
Ааа
источник

K

Koote in Python Flask
будет ли это интересно но вот

Если вы когда-нибудь сталкивались с SSTI в Jinja2, то вы наверняка гуглили RCE payload и находили что-то монструозное вроде этого:

{{''.__class__.mro()[1].__subclasses__()[46]('touch /tmp/rce',shell=True)}}
Этот пейлоад достает класс Popen по индексу из наследников object и исполняет команду. Он не очень-то удобен: индекс Popen (который в примере равен 46) различается от сетапа к сетапу, поэтому его нужно подбирать.

К счастью, всё можно сделать гораздо проще:

{{lipsum.__globals__["__builtins__"].eval("<python code>")}}
Здесь мы используем встроенную в Jinja функцию lipsum (она возвращает текст "Lorem ipsum dolor..."), но вместо того чтобы вызывать её, мы через __globals__ достаем её глобальные переменные — а в них нас ждет модуль __builtins__ с функцией eval.

Вообще, при эксплуатации SSTI-подобных уязвимостей в питоне полезно помнить о существовании свойства __globals__ у всех питоновских функций (кроме встроенных). Если в вашем окружении нет функций, а только объекты — не беда, найдите у него любой метод и возьмите свойство __func__. Вы получите unbound функцию, у которой уже будет __globals__.
источник