web
name: aaaaaaaaaaa
cookie: OuQ8RKZ9v61RFPShspbyzg==
echo OuQ8RKZ9v61RFPShspbyzg== | base64 -d | hexdump
0000000 e43a 443c 7da6 adbf 1451 a1f4 96b2 cef2
0000010
name: aaaaaaaaaaaa
cookie: FUoxH12UY/N58pkbRNAAf8JwkfrsOdSxW16pbszGJLY=
echo FUoxH12UY/N58pkbRNAAf8JwkfrsOdSxW16pbszGJLY= | base64 -d | hexdump
0000000 4a15 1f31 945d f363 f279 1b99 d044 7f00
0000010 70c2 fa91 39ec b1d4 5e5b 6ea9 c6cc b624
0000020
name: bbbbbbbbbbbb
cookie: bTNkZa3bH9/+krAEJafpfcJwkfrsOdSxW16pbszGJLY=
echo bTNkZa3bH9/+krAEJafpfcJwkfrsOdSxW16pbszGJLY= | base64 -d | hexdump
0000000 336d 6564 dbad df1f 92fe 04b0 a725 7de9
0000010 70c2 fa91 39ec b1d4 5e5b 6ea9 c6cc b624
0000020
PKCS #7 填充规则是:如果数据长度需要填充 n 个字节才能达到块大小的整数倍,那么就在数据的末尾填充 n 个值为 n 的字节。具体来说:
若数据长度刚好是块大小的整数倍,也需要填充一个完整的块,填充的字节值为块大小。例如,对于 16 字节的块大小,会填充 16 个值为 16 的字节。
若数据长度距离下一个块大小还差 n 个字节,就在数据末尾添加 n 个值为 n 的字节。
如果只填充1个字节,那么填入的值就是0×1;恰好8个字节时还要补8个字节的0×08
正是这种即使恰好是8个字节也需要再补充字节的规定,可以让解密的数据很确定无误的移除多余的字节。
当用户名长度为11和12时,密钥长度为16和32字节。关键在于变化的点,在11以内的长度是16字节。
由输出的长度判断为aes-128,ecb模式是相同区域的明文和密文对应。那么12个字节+16个字节+16个字节=44个字节,应该会使后面的两段相同。
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
FUoxH12UY/N58pkbRNAAf0Kfd1bvz3G39ZMOl2HnjTFCn3dW789xt/WTDpdh540xwnCR+uw51LFbXqluzMYktg==
echo FUoxH12UY/N58pkbRNAAf0Kfd1bvz3G39ZMOl2HnjTFCn3dW789xt/WTDpdh540xwnCR+uw51LFbXqluzMYktg== | base64 -d |xxd
00000000: 154a 311f 5d94 63f3 79f2 991b 44d0 007f .J1.].c.y…D…
00000010: 429f 7756 efcf 71b7 f593 0e97 61e7 8d31 B.wV..q…..a..1
00000020: 429f 7756 efcf 71b7 f593 0e97 61e7 8d31 B.wV..q…..a..1
00000030: c270 91fa ec39 d4b1 5b5e a96e ccc6 24b6 .p…9..[^.n..$.
知道是有4个字节的salt的aes-ecb-128的加密。
同时有一个管理员用户叫 simpleAdmin 11位 加上4个字节的salt 15位 加密时再补上一位 \0x1 密文为16个字节
如果明文为 simpleAdmin\0x1 加上4个字节的salt 16位 加密时补上16位 \0x16 密文为32个字节。
因为 前面16个字节和后面16个字节是分开的区域。密文和明文对应。可以获得simpleAdmin\0x1 的密文
+1+3/NxCLcIR0Jq9qDudF8JwkfrsOdSxW16pbszGJLY=
echo +1+3/NxCLcIR0Jq9qDudF8JwkfrsOdSxW16pbszGJLY= |base64 -d | hexdump
0000000 5ffb fcb7 42dc c22d d011 bd9a 3ba8 179d
0000010 70c2 fa91 39ec b1d4 5e5b 6ea9 c6cc b624
0000020
bTNkZa3bH9/+krAEJafpfc JwkfrsOdSxW16pbszGJLY=
+1+3/NxCLcIR0Jq9qDudF8 JwkfrsOdSxW16pbszGJLY=
后半截是另外一个区域
+1+3/NxCLcIR0Jq9qDudF8