To abuse this attack vector, we must know both the validation key and encryption key, in case both are used
Similarly, the IIS and ASP.NET application do not have to be configured to generate these keys at runtime, otherwise the attack cannot be carried out
Both keys are usually stored on a web.config file, along with their encryption algorithms
All this data is used to encrypt-then-sign (MAC) the ASP.NET objects and parameters serialized on the server before send them to the client
So, the requirement is basically to have access to the web.config file content to use the given keys to craft a serialized payload containing malicious code by abusing certain gadgets
We can have access to the mentioned file by leveraging certain attack vectors such as a File Disclosure or a LFI or by having direct access to the system
It is worth noting that if the web application uses preshared keys to build the VIEWSTATE data and so on, they can be extracted using tools such as Blacklist3r