.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 testcontainers maven构建失败   java实现jacobi算法实现laplace方程   java中的多线程:如何在不等待所有线程使用ExecutorService完成任务的情况下终止所有线程的执行?   java Hello World不在Android Studio 3中工作   ubuntu Tomcat7的Java版本不正确   java Javafx内存泄漏   对于手动实现的Spring数据存储库方法,我应该使用Java8默认方法吗?   googleappengine中的java添加过滤查询   html当使用JSOUP库在Java中读取标签时,如何保留标签(如<br>、<ul>、<li>、<p>等)的含义?   编码为什么jasper生成的报告在Java中不显示西里尔语(保加利亚语)?   java有没有办法隐藏当前位置和jdk动作?   java找出编译原型文件的版本   有没有办法在运行时更改java方法的访问修饰符?   语法字符串。。。Java中的参数   java数组元素在添加其他元素时会相互覆盖   eclipse中的java GWT项目   java如何为spring rest模板请求将动态json属性名映射到jackson   java无法在Windows 10上找到特定的JDK   在xml字符串和java字符串之间提取正则表达式子字符串