.NET ViewState解码器

viewstate的Python项目详细描述


一个用于解码ASP.NET viewstate的小型Python 3.5+库

viewstate是asp.net框架中使用的一种方法,用于跨回发保存对web表单的更改。它通常保存在隐藏的窗体字段中:

<inputtype="hidden"name="__VIEWSTATE"id="__VIEWSTATE"value="/wEP...">

解码视图状态在ASP.NET应用程序的渗透测试中非常有用,同时还可以显示更多可用于有效刮除网页的信息。

https://travis-ci.org/yuvadm/viewstate.svg?branch=master

安装

$ pip install viewstate

用法

Viewstate解码器接受Base64编码的.netviewstate数据,并以纯Python对象的形式返回解码输出

使用这个软件包有两种主要方法。首先,它可以用作具有以下典型用例的导入库:

>>>fromviewstateimportViewState>>>base64_encoded_viewstate='/wEPBQVhYmNkZQ9nAgE='>>>vs=ViewState(base64_encoded_viewstate)>>>vs.decode()('abcde',(True,1))

也可以直接输入原始字节:

>>>vs=ViewState(raw=b'\xff\x01....')

或者,可以通过命令行直接执行模块来使用库:

$ cat data.base64 | python -m viewstate

它将很好地打印解码后的数据结构。

命令行用法还可以接受带有-r标志的原始字节:

$ cat data.base64 | base64 -d | python -m viewstate -r

还支持Viewstate HMAC签名如果解析后还有剩余字节,则假定它们是hmac签名,类型根据签名长度估计。

>>>vs=ViewState(signed_view_state)>>>vs.decode()>>>vs.mac'hmac_sha256'>>>vs.signatureb'....'

开发

$ pytest

参考文献

由于没有关于.net viewstate如何编码的公开规范,反向工程是基于先前的工作:

任何官方文档都会很乐意接受,以帮助改进解析逻辑。

许可证

麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我可以在J2EE1.4中使用JAXR吗   YouTube数据API超出了未经验证的java每日使用限制   java RED5 RTMPConnManager未设置applicationContext局部变量。这会导致NullPointerException   java多部分/formdata,加载图像(安卓)   java Struts 2<s:select>填充表单中的其他字段   java Eclipse在迁移后不会将邮件属性传递给Spring Boot   java如何检查请求的TLS版本   java如何从包中导入相同的类   如何在java中将BLOB字符串转换为人类可读的格式字符串   java使用Play映射特定的文件路径!框架   java Eclipse重构   在子字符串上使用“预定义字符类”的java   java如何在SeleniumWebDriver中选择li中的锚定标记?   jspjava。木卫一。FileNotFoundException:系统找不到指定的路径   java Hi,在启动cmd\design javafx\cmd eclipse时,我的文件不是删除的,也不是复制的   java Selenium Web驱动程序异常“找不到:taskkill的可执行文件”   java如何获得数组的迭代器?