В какой-то момент я пытался расшифровать файл cookie ASP.ASPXAUTH и расшифровать его с помощью PHP. Мои причины огромны, и мне нужно это сделать, альтернативы нет. В PHP до сих пор мне удалось прочитать данные из этого файла cookie, но я не могу это сделать, пока он зашифрован. Во всяком случае, вот оно...
Сначала вам нужно изменить файл сервера Web.config(защита должна быть настроена на проверку):
<authentication mode="None">
<forms name=".ASPXAUTH" protection="Validation" cookieless="UseCookies" timeout="10080" enableCrossAppRedirects="true"/>
</authentication>
Затем в PHP script в том же домене вы можете сделать следующее, чтобы прочитать данные, это очень простой пример, но является доказательством:
$authCookie = $_COOKIE['_ASPXAUTH'];
echo 'ASPXAUTH: '.$authCookie.'<br />'."\n";//This outputs your plaintext hex cookie
$packed = pack("H*",$authCookie);
$packed_exp = explode("\0",$packed);//This will separate your data using NULL
$random_bytes = array_shift($packed_exp);//This will shift off the random bytes
echo print_r($packed_exp,TRUE); //This will return your cookies data without the random bytes
Это разбивает файл cookie или, по крайней мере, незашифрованные данные:
Теперь, когда я знаю, что могу получить данные, я удалил строку 'protection = "validation" "из моего Web.config, и я попытался расшифровать ее с помощью PHP mcrypt. Я пробовал бесчисленные методы, но вот многообещающий пример (который терпит неудачу)...
define('ASP_DECRYPT_KEY','0BC95D748C57F6162519C165E0C5DEB69EA1145676F453AB93DA9645B067DFB8');//This is a decryption key found in my Machine.config file (please note this is forged for example)
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_RAND);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, ASP_DECRYPT_KEY, $authCookie, MCRYPT_MODE_CBC, $iv);//$authCookie is the pack()'d cookie data
Однако это не удается. Я пробовал варианты IV со всеми нулями @16 байт. Я пробовал разные размеры Rijndael (128 против 256). Я пробовал base64_decode(), ничего не работает. Я нашел этот qaru.site/info/440047/... и начал использовать вариации ключа /iv, которые были сделаны с помощью sha256, но это тоже не работает.
Кто-нибудь знает, что я должен делать?