学习
实践
活动
工具
TVP
写文章

Validation of viewstate MAC failed 解决办法

如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的validationKey 和验证算法。不能在群集中使用 AutoGenerate。” 则说明多台WEB服务器上的WEB应用程序没有使用统一的machineKey导致的。        那么machineKey的作用是什么呢? 也就是说Asp.Net的很多加密,都是依赖于machineKey的设置,例如Forms 身份验证 Cookie、ViewState的加密。 如果单台服务器当然没问题,但是如果多台服务器负载均衡,machineKey还采用动态生成的方式,每台服务器上的machinekey值不一致,就导致加密出来的结果也不一致,不能共享验证和ViewState ,所以对于多台服务器负载均衡的情况,一定要在每台站点配置相同的machineKey

761100

记一次.Net代码审计-通过machineKey伪造任意用户身份

web.config除了数据库配置之外,还有这个: <machineKey validationKey="ABAA84D7EC4BB56D75D237CECFFB9628809BDB8......... 所以简单写个工具,把machineKey放入app.config中: ? 接下来就是Burpsuit一把梭,拦截响应头信息,替换cookie值,放包,刷新页面,成功伪造默认管理员用户登陆。 因此.Net程序在某些只有任意文件下载的场景下,配合web.config的machineKey或许有新突破。

55430
  • 广告
    关闭

    年末·限时回馈

    热卖云产品年终特惠,2核2G轻量应用服务器6.58元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    多进程模式运行Jexus

    2、需要配置machineKey。Jexus多进程并行时,相于当多主机群集工作,因此,必须在Web.Config文件中配置machineKey。 下面是一个machineKey的参考配置: <machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey ="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/> machineKey 可以通过在线工具生成: http://aspnetresources.com/tools/machineKey 参考相关文章: 网站优化——IIS与web.config配置优化 IIS Tuner

    33960

    C# AntiForgeryToken防XSRF漏洞攻击

    但隐藏域的值每次都不同,因为每访问一次页面,都会重新加密一次,虽然AntiForgeryToken对象的值相同,但通过MachineKey的Protect加密后,每次加密的值都会不同。 AntiForgery使用MachineKey进行加密,所以如果系统使用负载均衡,就需要配置MachineKey,否则不同服务器的MachineKey不同,导致无法解密。 序列化的时候会调用MachineKey的Protect方法进行加密。每次加密后的值都不相同。如果使用了负载均衡,一定要配置MachineKey,而不能使用系统的值。

    9310

    .Net魔法堂:开启IIS的WebGarden、WebFarm和StateServer之旅

    配置MachineKey    machineKey作为加密/解密秘钥。负载均衡时必须配置,否则会报“无法验证的错误”之类的问题。      默认情况下ASP.NET会自动生成一组machineKey,但作负载均衡时各台应用服务器所生成的均不同,则会导致无法正确加密解密共享信息。 <machineKey validationKey="86B6275BA31D3D713E41388692FCA68F7D20269411345AA1C17A7386DACC9C46E7CE5F97F556F3CF0A07159659E2706B77731779D2DA4B53BC47BFFD4FD48A54 9421E53E196BB56DB11B9C25197A2AD470638EFBC604AC74CD29DBBCF79D6046" validation="SHA1" decryption="AES"/>     machineKey 的生成函数 生成machineKey: public static string CreateKey(int len) { byte[] bytes = new byte[len]; new RNGCryptoServiceProvider

    70870

    com.alibaba.fastjson.JSONException: illegal identifier : pos 3, json

    项目报错截图如下 错误详情 com.alibaba.fastjson.JSONException: illegal identifier : pos 3, json : { "machineKey (ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) ---- 原因分析: 解决方案: 改成如下格式: { "machineKey

    90620

    解决asp.net负载均衡时Session共享的问题

    MachineKey生成工具,自动生成代码 https://www.fishlee.net/tools/machinekeygenerator 将生成的Machinekey插入到web.config中: <system.web> <machineKey validationKey="A89B01ED6C356FCFEEB884EA523D7827F719C7A9F26BCC808A109C516D57DF91D2D7612127F06957C6643913DB893F66492A2FB85D44805735BA96DF41071B0F E9F179A7EF94763ABD9A79B07BA61F49550235125FADEF942BD2045B2A9803C8" validation="SHA1" decryption="AES" /> </system.web> MachineKey

    12820

    SharePoint RCE From 0 to 0.9

    反序列化、ViewState与MachineKey 推荐文章:https://www.t00ls.net/articles-55183.html 一般情况下,我们拿到MachineKey,其格式如下: <machineKey validationKey="[String]" decryptionKey="[String]" validation="[SHA1 | MD5 | 3DES | AES | 主要利用思路如下: 利用include去读取目标web.config中的MachineKey---->利用key生成可RCE的payload 其exp如下(引号已转义): <%@ Register TagPrefix 得到machineKey: ? <machineKey validationKey="A2BA2AD5D54775F3F5C669988F8DD2AAF50B218385E9858F3763672F558324CB" decryptionKey

    40110

    Session分布式共享 = Session + Redis + Nginx

    3、利用MachineKey进行Session分布式共享 Ip_Hash在一定程度上解决了Session分布式共享的问题,但是总感觉没有发挥出nginx均衡负载的功能,继续改造 3-1、现将Ip_Hash 3-2、web.config添加MachineKey <machineKey validationKey="86B6275BA31D3D713E41388692FCA68F7D20269411345AA1C17A7386DACC9C46E7CE5F97F556F3CF0A07159659E2706B77731779D2DA4B53BC47BFFD4FD48A54 9421E53E196BB56DB11B9C25197A2AD470638EFBC604AC74CD29DBBCF79D6046" validation="SHA1" decryption="AES" /> 【注意】 负载均衡的两个网站的MachineKey

    66850

    有关VIEWSTATE exploit在实战中的应用问题

    随后再发送第一个 VIEWSTATE 应该就没有问题了,再有问题建议自己本机搭建相同MachineKey环境或者干脆放弃。

    75720

    ViewState 剖析

    但要加密也是可以的(设置 enableViewStateMac 来使用 machine key 进行 hash) 加密:设置 machineKey 验证, 但这必须在机器级别设置,需要更多的资源,所以不推荐 Page.EnableViewStateMac = false; Listing 2: ViewState Encryption is Enabled machine.config: <machineKey

    9330

    Asp.Net Form验证不通过,重复登录(.net4,4.5form验证兼容性问题)

    2.配置影响(如web.config中的authentication,machineKey等). 1嘛,基本不可能,ms没这么渣,那就只能从2下手,但是具体什么配置影响到,就不得而知了.

    43720

    .Net Core Web Api实践(三).net core+Redis+docker实现Session共享

    app.UseCookiePolicy():表示使用ConfigureServices中配置cookie策略 services.AddDataProtection:配置应用程序名称,自定义MachineKey

    97410

    ASP.NET Core 数据加解密的一些坑

    冗长的官方文档大家可以自己去看,这里我做一下总结: 使用Data Protection API的好处在于: 淘汰传统的MachineKey

    93640

    .Net 反序列化之 ViewState 利用

    在web.config 中通过machineKey节 来对校验功能和加密功能进行进一步配置: <machineKey validationKey="[String]" decryptionKey="[ HMACSHA512 | alg:algorithm_name]" decryption="[Auto | DES | 3DES | AES | alg:algorithm_name]" /> 例子: <machineKey 由于web.config 保存在服务端上,在不泄露machineKey的情况下,保证了ViewState的安全性。

    91020

    使用 OWIN 搭建 OAuth2 服务器

    = identity.Name, infos }; } } 为了能让资源服务器识别认证服务器颁发的令牌, 需要配置两个应用的 machineConfig 为相同的 key , 如下所示: <machineKey

    37910

    .NET牛人应该知道些什么,我的回答

    What is the <machinekey> element and what two ASP.NET technologies is it used for? <machinekey>元素是干嘛用的?它用于哪两项ASP.NET技术? 说出ASP.NET 1.1中的3种Session State提供程序以及它们的优缺点?

    7010

    程序员级别鉴定书(.NET面试问答集锦)

    <machinekey>元素是做什么的?它在 ASP.NET下是做什么用的? 说出ASP.NET中三种Session State提供程序及优缺点。 ASP.NET会重用多个请求之间的线程吗? 参考 <machinekey>元素是做什么的?它在 ASP.NET下是做什么用的? Machinekey是添加在web.config中<system></system>之间的一个标签。

    68770

    架构探索之会话状态、Web Farm、负载均衡器

    请记住,在网络农场中,您必须确保您的<machinekey>所有Web服务器都具有相同的功能。其他内容与我之前描述的相同。

    45230

    扫码关注腾讯云开发者

    领取腾讯云代金券