Esempio n. 1
0
        public static bool IsAdmin(byte[] data)
        {
            var decrypted = AesCbc.Decrypt(Key, Iv, data);
            var str       = System.Text.Encoding.ASCII.GetString(decrypted);

            return(str.Contains(";admin=true;"));
        }
Esempio n. 2
0
        public static byte[] EncryptionOracle(out int randIndex)
        {
            var r = new Random();

            randIndex = r.Next(0, Data.Length);
            var input = Data[randIndex];

            return(AesCbc.Encrypt(Key, Iv, Convert.FromBase64String(input)));
        }
Esempio n. 3
0
        public static byte[] EncryptionOracle(string input)
        {
            var encoded = input.Replace(";", "%3B").Replace("=", "%3D");
            var b1      = System.Text.Encoding.ASCII.GetBytes(Prefix);
            var b2      = System.Text.Encoding.ASCII.GetBytes(Suffix);
            var bytes   = new List <byte>();

            bytes.AddRange(b1);
            bytes.AddRange(System.Text.Encoding.ASCII.GetBytes(encoded));
            bytes.AddRange(b2);
            return(AesCbc.Encrypt(Key, Iv, bytes.ToArray()));
        }
Esempio n. 4
0
        public static CipherMode EncryptEcbOrCbc(byte[] data, out CipherMode actualMode)
        {
            actualMode = Rand.Next(0, 2) == 0 ? CipherMode.ECB : CipherMode.CBC;
            var key = SecureRng.GenerateRandomBytes(KeySizeBytes);

            // Add prefix and suffix to data
            data = TransformData(data);
            byte[] encrypted;
            if (actualMode == CipherMode.ECB)
            {
                var padded = PaddingUtil.Pad(data, BlockSizeBytes);
                encrypted = AesEcb.Encrypt(key, padded);
            }
            else
            {
                var iv = SecureRng.GenerateRandomBytes(BlockSizeBytes);
                encrypted = AesCbc.Encrypt(key, iv, data);
            }
            var guessedMode = AesEcb.IsEcbEncrypted(encrypted, BlockSizeBytes)
                ? CipherMode.ECB
                : CipherMode.CBC;

            return(guessedMode);
        }
Esempio n. 5
0
        public static bool IsValid(byte[] data)
        {
            var decryted = AesCbc.Decrypt(Key, Iv, data, false);

            return(PaddingUtil.ValidPadding(decryted, BlockSizeBytes));
        }