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

  • A+
所属分类:安全文章

文章源自【字节脉搏社区】-字节脉搏实验室

作者-叶子

扫描下方二维码进入社区

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


相信大家都晓得过 CVE-2020-0688 ,由于部署完Exchange Server后使用了硬编码的 Machine Key ,从而导致篡改 ASP.NET Form 中的  VIEWSTATE 参数值打反序列化 RCE 。

复现起来确实很爽,但是实战用起来,确实也很拉跨。

比如说,对面 ban 掉了对外连接;比如说, web 目录不可写;再比如说,可写,但是对方会自动复原文件。

那么如何解决这些问题呢?

弯弯的一个师傅贴了文章,利用另一个 ActivitySurrogateSelectorFromFile gadget,它会call 一下 Assembly.Load 完成动态载入 .NET 组件,相当于我们可以在与aspx相同的环境下实现 .NET 任意代码执行,然后.NET中System.Web.HttpContext.Current可以获得http请求上下文,相当于可以即时写一个webshell,而这个webshell是无档案的。

如何操作呢?

使用以下命令即可:

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

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


这几个dll可以自己windows装一个.NET Framework在C盘找,或者直接从网上下。

ExploitClass.cs用下面这个可行

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

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

其中 Server.ClearError() 用来 stack 中记录的错误, context.Response.End() 来结束请求并回显,避免了后面可能出现的报错导致无法回显。POST 发送这个恶意的 VIEWSTATE 即可

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

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

然而有些服务器在gadget上打了微软的patch,返回时会报500,可以使用下面产生的VIEWSTATE,

它会使  DisableActivitySurrogateSelectorTypeCheck 变为 true

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

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


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

原理参考:

https://silentbreaksecurity.com/re-animating-activitysurrogateselector/

可以拿赵师傅出的一道题看看,[BJDCTF 2nd]EasyAspDotNet:https://www.zhaoj.in/read-6497.html

HITCON 2018也提到了类似的问题 https://xz.aliyun.com/t/3019

PS:希望c.php没事  有关VIEWSTATE exploit在实战中的应用问题

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

通知!

公众号招募文章投稿小伙伴啦!只要你有技术有想法要分享给更多的朋友,就可以参与到我们的投稿计划当中哦~感兴趣的朋友公众号首页菜单栏点击【商务合作-我要投稿】即可。期待大家的参与~

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

记得扫码

关注我们

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: