Work fast with our official CLI. Blacklist3r is used to identify the use of pre-shared (pre-published) keys in the application for encryption and decryption of forms authentication cookie, ViewState, etc. It is intended for use with Burp suite v2020.x or later. Viewgen is a ViewState tool capable of generating both signed and encrypted payloads with leaked validation keys, viewgen is a ViewState tool capable of generating both signed and encrypted payloads with leaked validation keys or web.config files, pip3 install --user --upgrade -r requirements.txt or ./install.sh, docker build -t viewgen . Update payload to get reverse shell. In the past, I've used this website to decode it: http://www.motobit.com/util/base64-decoder-encoder.asp. The following blog posts are related to this research: A video link for Immunity Canvas was added to the references and also in the Other tools section. This is normally the case when multiple web servers are used to serve the same application often behind a load balancer in a Web Farm or cluster. So encoding and hashing is done before the request reaches server. valid ViewState can be forged. As mentioned previously, it is important to find the root of button on the Message Tab of the History to select the ViewState. Information on ordering, pricing, and more. The Viewstate decoder accepts Base64 encoded .NET viewstate data and returns the decoded output in the form of plain Python objects. Is it possible to create a concave light? Overall impact: Did this satellite streak past the Hubble Space Telescope so close that it was out of focus? Microsoft released an update for ASP.NET 4.5.2 in December 2013 [25] to remove the ability of .NET applications to disable the MAC validation feature as it could lead to remote code execution. 2023 Python Software Foundation The following machineKey section shows I need to see the contents of the viewstate of an asp.net page. Welcome to the new blog post on .NET ViewState deserialization. Site map. For example, the. [1] https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.losformatter, [2] https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.objectstateformatter, [3] https://devblogs.microsoft.com/aspnet/farewell-enableviewstatemac/, [4] https://www.owasp.org/index.php/Anti_CSRF_Tokens_ASP.NET, [5] https://docs.microsoft.com/en-us/previous-versions/aspnet/hh975440(v=vs.120), [6] https://github.com/Microsoft/referencesource/blob/master/System.Web/Util/AppSettings.cs#L59, [7] https://github.com/Microsoft/referencesource/blob/master/System.Web/UI/Page.cs#L4034, [8] https://www.troyhunt.com/understanding-and-testing-for-view/, [9] https://portswigger.net/kb/issues/00400600_asp-net-viewstate-without-mac-enabled, [10] https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/viewstate-mac-disabled/, [11] https://www.acunetix.com/vulnerabilities/web/view-state-mac-disabled/, [12] https://github.com/pwntester/ysoserial.net/, [13] https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.machinekeysection, [14] https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.machinekeysection.compatibilitymode, [15] https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.control.templatesourcedirectory, [16] https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/ms972969(v=msdn.10), [17] https://software-security.sans.org/developer-how-to/developer-guide-csrf, [18] https://github.com/pwntester/ysoserial.net/tree/master/ysoserial/Plugins/ViewStatePlugin.cs, [19] https://github.com/pwntester/ysoserial.net/tree/v2/ysoserial/Plugins/ViewStatePlugin.cs, [20] https://docs.microsoft.com/en-us/iis/get-started/planning-your-iis-architecture/understanding-sites-applications-and-virtual-directories-on-iis, [21] https://github.com/nccgroup/VulnerableDotNetHTTPRemoting/tree/master/ysoserial.net-v2, [22] https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2019/march/finding-and-exploiting-.net-remoting-over-http-using-deserialisation/, [23] https://www.slideshare.net/ASF-WS/asfws-2014-slides-why-net-needs-macs-and-other-serialization-talesv20, [24] https://media.blackhat.com/bh-us-12/Briefings/Forshaw/BH_US_12_Forshaw_Are_You_My_Type_Slides.pdf, [25] https://docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2013/2905247, [26] https://www.blackhat.com/docs/us-17/thursday/us-17-Munoz-Friday-The-13th-JSON-Attacks-wp.pdf, [27] https://www.slideshare.net/MSbluehat/dangerous-contents-securing-net-deserialization, [28] https://speakerdeck.com/pwntester/dot-net-serialization-detecting-and-defending-vulnerable-endpoints?slide=54, [29] https://vimeopro.com/user18478112/canvas/video/260982761, [30] https://web.archive.org/web/20190803165724/https://pwnies.com/nominations/, Danger of Stealing Auto Generated .NET Machine Keys, IIS Application vs. Folder Detection During Blackbox Testing, https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.losformatter, https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.objectstateformatter, https://devblogs.microsoft.com/aspnet/farewell-enableviewstatemac/, https://www.owasp.org/index.php/Anti_CSRF_Tokens_ASP.NET, https://docs.microsoft.com/en-us/previous-versions/aspnet/hh975440(v=vs.120), https://github.com/Microsoft/referencesource/blob/master/System.Web/Util/AppSettings.cs#L59, https://github.com/Microsoft/referencesource/blob/master/System.Web/UI/Page.cs#L4034, https://www.troyhunt.com/understanding-and-testing-for-view/, https://portswigger.net/kb/issues/00400600_asp-net-viewstate-without-mac-enabled, https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/viewstate-mac-disabled/, https://www.acunetix.com/vulnerabilities/web/view-state-mac-disabled/, https://github.com/pwntester/ysoserial.net/, https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.machinekeysection, https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.machinekeysection.compatibilitymode, https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.control.templatesourcedirectory, https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/ms972969(v=msdn.10), https://software-security.sans.org/developer-how-to/developer-guide-csrf, https://github.com/pwntester/ysoserial.net/tree/master/ysoserial/Plugins/ViewStatePlugin.cs, https://github.com/pwntester/ysoserial.net/tree/v2/ysoserial/Plugins/ViewStatePlugin.cs, https://docs.microsoft.com/en-us/iis/get-started/planning-your-iis-architecture/understanding-sites-applications-and-virtual-directories-on-iis, https://github.com/nccgroup/VulnerableDotNetHTTPRemoting/tree/master/ysoserial.net-v2, https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2019/march/finding-and-exploiting-.net-remoting-over-http-using-deserialisation/, https://www.slideshare.net/ASF-WS/asfws-2014-slides-why-net-needs-macs-and-other-serialization-talesv20, https://media.blackhat.com/bh-us-12/Briefings/Forshaw/BH_US_12_Forshaw_Are_You_My_Type_Slides.pdf, https://docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2013/2905247, https://www.blackhat.com/docs/us-17/thursday/us-17-Munoz-Friday-The-13th-JSON-Attacks-wp.pdf, https://www.slideshare.net/MSbluehat/dangerous-contents-securing-net-deserialization, https://speakerdeck.com/pwntester/dot-net-serialization-detecting-and-defending-vulnerable-endpoints?slide=54, https://vimeopro.com/user18478112/canvas/video/260982761, https://web.archive.org/web/20190803165724/https://pwnies.com/nominations/. You need to include a reference to "System.Web" in your project if you paste this into a console application. Web Web . Would be good if the tool could also show cookies and Session variables. https://cyku.tw/ctf-hitcon-2018-why-so-serials/, https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/, https://illuminopi.com/assets/files/BSidesIowa_RCEvil.net_20190420.pdf, https://speakerdeck.com/pwntester/dot-net-serialization-detecting-and-defending-vulnerable-endpoints. here: Apart from using different gadgets, it is possible to use The created plugin handles the requirement when it needs to that requires compiling the ExploitClass.cs class in YSoSerial.Net project. The view state is the state of the page and all its controls. A small Python 3.5+ library for decoding ASP.NET viewstate. There are two main ways to use this package. Its purpose is to persist the state of server controls . viewstate - ASP.NET View State Decoder. deserialising untrusted data. Community. It shows a tree view of the structure and provides an editor for viewing & editing the contents. Since my viewstate is formed after a postback and comes as a result of an operation in an update panel, I cannot provide a url. Leaking the web.config file or validation keys from ASP.NET apps results in RCE via ObjectStateFormatter deserialization if ViewStates are used. This means that in the latest .NET Framework versions the decryption key and @ahwm True story. Lets create our payload using ysoserial.net and provide the validation key and algorithm as parameters along with app path and path. Since version 4.5 however, it uses the Purpose strings in order to create the hash. #decode_viewstate(encoded_viewstate, algo: 'sha1') Object. 3. This can be achieved by executing the following ASP.NET code as an example to create For the sake of an example, we will be using the below code. For the Nozomi from Shinagawa to Osaka, say on a Saturday afternoon, would tickets/seats typically be available - or would you need to book? Learn more. ASP.NET ViewState Decoder. Are you sure you want to create this branch? With the help of an example, lets see how serialization and deserialization works in .NET (similar to how it works for ViewState). This worked on an input on which the Ignatu decoder failed with "The serialized data is invalid" (although it leaves the BinaryFormatter-serialized data undecoded, showing only its length). exploit a website. I like the fact that the Home Blog Videos Documentation Community Download. is not a new attack. It shows a tree view of the structure and provides an editor for viewing & editing the contents. Even if the ViewState is URLEncoded, the ViewState will be output after URLDecode. property to Auto or Never always use First, it can be used as an imported library with the following typical use case: No key is needed. CASE 1: Target framework 4.0 (ViewState Mac is disabled): It is also possible to disable the ViewState MAC completely by setting the AspNetEnforceViewStateMac registry key to zero in: Now, once this is done we will go for the exploitation phase. Decode the ViewState value. Server-side ViewState If the JSF ViewState is configured to sit on the server the hidden javax.faces.ViewState field contains an id that helps the server to retrieve the correct state. First, it can be used as an imported library with the following typical use case: >>> vs = ViewState ( raw=b'\xff\x01..') Alternatively, the library can be used via . and enforce ViewState encryption can still accept a signed ViewState without encryption. . http://deadliestwebattacks.com/2011/05/29/javascript-viewstate-parser/, http://deadliestwebattacks.com/2011/05/13/a-spirited-peek-into-viewstate-part-i/, http://deadliestwebattacks.com/2011/05/25/a-spirited-peek-into-viewstate-part-ii/, Here's another decoder that works well as of 2014: http://viewstatedecoder.azurewebsites.net/. The easy exploitation mechanism was known publicly after Alvaro Muoz & Oleksandr Mirosh published their gadgets in BlackHat 2017 [26]. It doesnt Exploiting a deserialisation issue via __EVENTVALIDATION is more restricted and requires: Value ASP.NET has various serializing and deserializing libraries known as formatters, which serializes and deserializes objects to byte-stream and vice-versa like ObjectStateFormatter, LOSFormatter, BinaryFormatter etc. Thought I was going crazy or that our in-house CMS was doing weird things. of course, you are correct. GitHub - martabyte/viewstate-decoder: Quick python script to decode ASP.NET ViewState. Decrypt the ViewState variable to show my encryption key works. This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. the __VIEWSTATEGENERATOR parameter instead of providing Disabled ViewState MAC Validation. This behaviour changes when the ViewStateUserKey property is used, as ASP.NET will not suppress the MAC validation errors anymore. is required to check whether the MAC validation is disabled when the __VIEWSTATE Catch critical bugs; ship more secure software, more quickly. sign in is required when the MAC validation feature is enabled. Below we can see that the test.txt file has been created in the Temp directory: This is a simple simulation showcasing how the ViewState Serialization and deserialization would work in a web application during postback action. machineKey encrypted ViewState parameters. Free, lightweight web application security scanning for CI/CD. previously, this is the default configuration for all .NET Framework versions Making statements based on opinion; back them up with references or personal experience. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. In this case, we will need to provide the app path and path variables as parameters to ysoserial. Viewstate parser. Basic .Net deserialization (ObjectDataProvider gadget, ExpandedWrapper, and Json.Net) Exploiting __VIEWSTATE knowing the secrets. http://ignatu.co.uk/ViewStateDecoder.aspx. This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. Since there is no publically available specification of how .NET viewstate is encoded, reverse engineering was based on prior work: Any official documents would be gladly accepted to help improve the parsing logic. I can't see where this has gone - is it still in the current version? in the web.config file. parameter with an invalid value. Exploiting ASP.NET web applications via ViewState has also been mentioned directly in BlueHat v17 by Jonathan Birch in November 2017 [27], and has also been covered by Alvaro Muoz in the LOCOMOCO conference in April 2018 [28]. See how our software enables the world to secure the web. The LocalPotato attack is a type of NTLM reflection attack that targets local authentication. this research and creation of the ViewState YSoSerial.Net plugin. an example: It should be noted that when a machineKey section has not been defined within the configuration files or when the validationKey and decryptionKey attributes have been set to AutoGenerate, the application generates the required values dynamically based on a cryptographically random secret. You can view the source code for all BApp Store extensions on our GitHub page. parameter is used. Are you sure you want to create this branch? value is known: The ViewStateUserKey parameter can also be provided as an viewstate-decoder.py. Is there a tool or a website exist that can help viewing the contents of viewstate? Enhance security monitoring to comply with confidence. This might be Isn't it just a base 64 encoded version of the serialized data? 1 February 2020 / github / 2 min read ASP.NET View State Decoder. Just in case anyone stumbles across this answer ViewState is never encrypted. Low. ViewStateDecoder. path tree in IIS: You can check [20] if you are not familiar with virtual directory and application terms in IIS. validation feature, they are now vulnerable to remote code execution via --path and --apppath arguments should be as follows: If we did not know that app2 was an application name, we GitHub page. Is there a single-word adjective for "having exceptionally strong moral principles"? View state is the method that the ASP.NET page framework uses to preserve page and control values between round trips. Though it is not difficult to decode is and read the view state information. parameter in the URL via a GET request. __gv + ClientID + __hidden, Validation key and its decryption keys and algorithms within the machineKey useful to bypass some WAFs when ViewState chunking is allowed. For those using the current version of Fiddler (2.5.1), the text box described in this answer can now be found by clicking the TextWizard option in the menu along the top (, code worked for me, but I did have to add a reference to one of the assemblies actually involved in producing the view state. 2. https://github.com/pwntester/ysoserial.net, 3. https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/, 4. https://www.tutorialspoint.com/asp.net/asp.net_managing_state.htm, 5. https://odetocode.com/blogs/scott/archive/2006/03/20/asp-net-event-validation-and-invalid-callback-or-postback-argument.aspx, 6. https://blogs.objectsharp.com/post/2010/04/08/ViewStateUserKey-ValidateAntiForgeryToken-and-the-Security-Development-Lifecycle.aspx, void Page_Init (object sender, EventArgs e), <%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestComment.aspx.cs" Inherits="TestComment" %>, public partial class TestComment : System.Web.UI.Page, protected void Page_Load(object sender, EventArgs e). A tag already exists with the provided branch name. This extension is a tool that allows you to display ViewState of ASP.NET. CASE 4: Target framework 4.0 (Encryption is enabled for ViewState). It is possible to Since there is no publically available specification of how .NET viewstate is encoded, reverse engineering was based on prior work: https://github.com/mutantzombie/JavaScript-ViewState-Parser, http://viewstatedecoder.azurewebsites.net/, https://referencesource.microsoft.com/#System.Web/UI/ObjectStateFormatter.cs,45, https://msdn.microsoft.com/en-us/library/ms972976.aspx. In fact, it has been known publicly for at least 5 years The only limiting factor is the URL Before December 2013 when most of us did not know about the danger of remote code execution via deserialisation issues in ViewState, the main impacts of disabling the MAC validation were as follows (see [8]): At the time of writing this blog post, the following well Now that we have covered the basics of ViewState and its working, lets shift our focus towards the insecure deserialization of the ViewState and how this can lead to remote code execution. Assuming you've turned the encryption on, which is not the default, ASP.NET will use the web site machine key as the key used to encrypt and sign ViewState and cookies. The data is in the top panel. There are two main ways to use this package. a local file read, attacker wont be able to retrieve the values of keys required for creating a payload. This was identified by reviewing the .NET Framework source code [6]. Debug Android Emulators The Viewstate decoder accepts Base64 encoded .NET viewstate data and returns the decoded output in the form of plain Python objects. We can force the usage of ASP.NET framework by specifying the below parameter inside the web.config file as shown below. Microsoft released a patch in September 2014 [3] to enforce the MAC validation by ignoring this property in all versions of .NET Framework. Lesser Known Persistence Techniques of WinXP are still effective on Win 10 and 11. Please note that extensions are written by third party users of Burp, and PortSwigger Web Security makes no warranty about their quality or usefulness for any particular purpose. Applications that use an older framework Edit: Unfortunatey, the above link is dead - here's another ViewState decoder (from the comments): http://viewstatedecoder.azurewebsites.net/. Viewstate is a method used in the ASP.NET framework to persist changes to a web form across postbacks. The keys required to perform the signing and/or encryption mechanism can be stored in the machineKey section of the web.config (application level) or machine.config (machine level) files. How do you ensure that a red herring doesn't violate Chekhov's gun? The enterprise-enabled dynamic web vulnerability scanner. has been disabled or by knowing the: In order to prevent manipulation attacks, .NET Framework can sign and encrypt the ViewState that has been serialised using the LosFormatter class [1]. decode ('utf8') else: d1 = copy . The parser should work with most non-encrypted ViewStates. within the root of an application, they can easily run code on the server. Are you sure you want to create this branch? This parser was a huge help during testing as it facilitated easy decoding and identifying viewstate issues on web applications. kandi has reviewed viewstate and discovered the below as its top functions. This one worked for me in Firefox even when other viewstate parsers did not. parameter. Unit tests and code formatting tasks can be run with the builtin scripts: For PyPI releases, follow the build, check and upload scripts. figure 1). For ASP.NET framework 4.5, we need to supply the decryption algorithm and the decryption key to the ysoserial payload generator as follows: The path and apppath parameters above can be decided with the help of a little debugging. Open any page in a browser, go to the source page, copy the view state value in the clipboard. .Net 4.5 is encrypting ViewState. This can be checked by sending a short random Some features may not work without JavaScript. If you're not sure which to choose, learn more about installing packages. see the details of error messages (so it is not possible to look for Validation ASP.NETViewstate. Does ZnSO4 + H2 at high pressure reverses to Zn + H2SO4? I might have missed some parts of the history here so please Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Base64 Encoder/Decoder Encode the plain text to Base64 or decode Base64 to the plain text. Developer's common vision of a ViewState is a large hidden HTML field (see. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. After all, ASP.net needs to decrypt it, and that is certainly not a black box. Unit tests and code formatting tasks can be run with the builtin scripts: For PyPI releases, follow the build, check and upload scripts. Add-ons. Granted, it's just a straight string decoding rather than a viewstate decoder, but it gets me much further down the road than anything else so far. As you can set the machine keys (for validation and decryption) to a known value in web.config you could then use this to decrypt manually if necessary. 1 branch 0 tags. First, it can be used as an imported library with the following typical use case: However, as the ViewState do not use the MAC an exploit has been executed successfully on the server-side. ASP.NET ViewState Decoder Decode the ASP.NET ViewState strings and display in treeview format. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. It is intended for use with Burp suite v2020.x or later. Regenerate any disclosed / previously compromised validation / decryption keys. Check out PortSwigger Dastardly-Github-Action statistics and issues. CASE 3: Target framework 4.0 (ViewState Mac is enabled): We can enable the ViewState MAC by making changes either in the specific page or the overall application. The other two answerers did the same thing and only posted the link. me access to his code and helping me in updating the YSoSerial.Net project. The Viewstate decoder accepts Base64 encoded .NET viewstate data and returns the decoded output in the form of plain Python objects. Is it correct to use "the" before "materials used in making buildings are"? It seems ViewState is encrypted by default since version 4.5 base64 string in the __VIEWSTATE parameter. Minimising the environmental effects of my dyson brain. This serialized data is then saved into a file. ASP.NET page as an example to make this clearer: The following screenshot shows the the application path in order to create a valid ViewState unless: In this case, the --generator argument can be used. The --isdebug However, in cases where we have _VIEWSTATEGENERATOR parameter in the HTTP Requests, we can directly provide its value to ysoserial for payload generation. In case there are any remaining bytes after parsing, they are assumed to be HMAC signatures, with the types estimated according to signature length. until finding a ViewState that can execute code on the server (perhaps by A novel encoder-decoder network-based model is proposed for trend prediction in this work. in the web.config file. The only essential part is the decoder itself. Decoding the view state can be useful in penetration testing on ASP.NET applications, as well as revealing more information that can be used to efficiently scrape web pages. since September 2014. parts when the MaxPageStateFieldLength property has been set to a positive value. Please whether or not the ViewState has been encrypted by finding the __VIEWSTATEENCRYPTED The following shows an example: Another option for a stand-alone website would be to set the However, we can see below that the payload got executed and a file test.txt with content 123 was created successfully. This post has been nominated in the pwnie for most under-hyped research category in 2019 pwnie awards [30]! Hi, In recent versions of Burp (As of v2020-03), the ViewState parser seems missing from the message editor view. Although not knowing the value of this parameter can stop our attack, its value can often be found in the cookies or in a hidden input parameter ([17] shows an implemented example). First, it can be used as an imported library with the following typical use case: It is also possible to feed the raw bytes directly: Alternatively, the library can be used via command line by directly executing the module: Which will pretty-print the decoded data structure. URLENCODED data is okay ''' # URL Encoding: urldelim = "%" # Check to see if the viewstate data has urlencoded characters in it and remove: if re. There's more to it than that. Get started with Burp Suite Enterprise Edition. mechanism that has been implemented by setting the Page.ViewStateUserKey Now right click on the page > View Source. version is sorely outdated and therefore too unlikely to be The viewstate for this app seems to be encrypted however -- I can't decode with UTF-8 because it encounters invalid characters (see gibberish characters below), but if I decode with Latin-1 I get something along the lines of this: . Informacin detallada del sitio web y la empresa: g-trapper.com G-Trapper & Partners - Eventi Pellegrinaggi e Allestimenti Why does it seem like I am losing IP addresses after subnetting with the subnet mask of 255.255.255.192/26? With the help of islegacy and isdebug switch of the ysoserial payload generator, we can try to guess the values of path and apppath. Legal / Privacy / Eula [webapps] pfBlockerNG 2.1.4_26 - Remote Code Execution (RCE), [remote] MSNSwitch Firmware MNT.2408 - Remote Code Execution, [remote] AVEVA InTouch Access Anywhere Secure Gateway 2020 R2 - Path Traversal, [local] IOTransfer V4 - Unquoted Service Path, [webapps] CVAT 2.0 - Server Side Request Forgery, WebForms.HiddenFieldPageStatePersister.ClientState, WebForms.ClientScriptManager.EventValidation, P2 in P1|P2 in __dv As explained previously, we sometimes use errors to check whether a generated ViewState is valid. Step 3: Execute the page and enter some values in the textbox. parameter that might be in use to stop CSRF attacks. The difference between the phonemes /p/ and /b/ in Japanese. An ASP.NET page produces an error when an invalid __VIEWSTATE exploiting .NET Framework 4.0 and below (tested on v2.0 through v4.0) even when Framework version 4.0 or below; and, An ASP.NET page that accepts input parameters, A valid input parameter name. application. ,getPhoneNumber_javascript It is usually saved on a hidden form field: Decoding the view state can be useful in penetration testing on ASP.NET applications, as well as revealing more information that can be used to efficiently scrape web pages. Cannot retrieve contributors at this time. ViewState Editor is an extension that allows you to view and edit the structure and contents of V1.1 and V2.0 ASP view state data. $ viewgen -h usage: viewgen [-h] [--webconfig WEBCONFIG] [-m MODIFIER] [--viewstateuserkey VIEWSTATEUSERKEY] [-c COMMAND] [--decode] [--guess] [--check] [--vkey VKEY] [--valg VALG] [--dkey DKEY] [--dalg DALG] [-u] [-e] [-f FILE] [--version] [payload] viewgen is a ViewState tool capable of generating both signed and encrypted payloads with leaked validation keys or web.config files positional . rather than txtMyInput.Text. Decode a Base64-encoded string; Convert a date and time to a different time zone; Parse a Teredo IPv6 address; Convert data from a hexdump, then decompress . In brief, ViewState is a Base64 encoded string and is not readable by the human eye.