有一段时间,我一直在尝试破译ASP .ASPXAUTH cookie并使用
PHP进行解密.我的理由很大,我需要这样做,别无选择.在PHP到目前为止,我已经成功地设法读取了这个cookie的数据,但是加密时似乎并没有这样做.无论如何,在这里…
首先您需要更改您的服务器Web.config文件(保护需要设置为验证):
然后在同一个域的PHP脚本中,您可以执行以下操作来读取数据,这是一个非常基本的例子,但是是证明:
$authCookie = $_COOKIE['_ASPXAUTH'];
echo 'ASPXAUTH: '.$authCookie.'
'."\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,或至少是未加密的数据:
现在我知道我可以获取数据,我从我的Web.config中删除了’protection =“验证”’字符串,我试图使用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()ing,似乎没有任何工作.我发现这个stackoverflow post here,并开始使用使用sha256使用的键/ iv的变体,但这也不是真的有效.
有人有线索我应该做什么?