易受Oracle攻击的asp.net应用程序示例?

易受Oracle攻击的asp.net应用程序示例?,asp.net,padding-oracle-attack,Asp.net,Padding Oracle Attack,是否有人可以给我举一个asp.net web应用程序的基本示例,该应用程序易受oracle攻击。请尝试以下两个站点的步骤来测试您的站点 希望这能有所帮助我知道这是一个很晚的答案,但也许有人会寻找这些信息 ASP.NET的旧版本易受Oracle攻击。通过一些调整,仍然可以强制执行“旧”行为。我在上详细描述了它们,示例代码在上 我们将攻击VIEWSTATE场。首先,需要禁用ViewState签名。为此,请确保在web.config文件中具有以下设置: <appSettings>

是否有人可以给我举一个asp.net web应用程序的基本示例,该应用程序易受oracle攻击。

请尝试以下两个站点的步骤来测试您的站点


希望这能有所帮助

我知道这是一个很晚的答案,但也许有人会寻找这些信息

ASP.NET的旧版本易受Oracle攻击。通过一些调整,仍然可以强制执行“旧”行为。我在上详细描述了它们,示例代码在上

我们将攻击VIEWSTATE场。首先,需要禁用ViewState签名。为此,请确保在web.config文件中具有以下设置:

<appSettings>
  <add key="aspnet:UseLegacyMachineKeyEncryption" value="true" />
</appSettings>

)。

在安装补丁之前,所有应用程序都容易受到攻击。特别是如果您使用ViewState。是的,我知道,但我不熟悉asp.net编程。。。你能给我举个例子吗。以viewstate为例,您的请求的目的是什么?试图入侵你的一个竞争对手的网站?我想在我自己的网站上尝试vuln。。。这就是为什么我要源代码,因为我不知道如何在asp.net中编码
<%@ WebHandler Language="C#" Class="EncryptionHandler" %>

using System;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Security;
using System.Text;

public class EncryptionHandler : IHttpHandler
{
    static readonly byte[] secret = Encoding.UTF8.GetBytes("Some text to break.");

    public void ProcessRequest(HttpContext context)
    {
        var viewState = context.Request.Form["VIEWSTATE"];

        if (viewState == null) {
            viewState = MachineKey.Encode(secret, MachineKeyProtection.Encryption);
            context.Response.ContentType = "text/html";
            context.Response.Write("<!doctype html><html><form action=\"/EncryptionHandler.ashx\" method=\"POST\">" +
                "<input type=\"hidden\" name=\"VIEWSTATE\" value=\"" + viewState + "\" />" +
                "<input type=\"submit\" value=\"Test\" /></form></html>");
            return;
        }

        var v = MachineKey.Decode(viewState, MachineKeyProtection.Encryption);
        context.Response.ContentType = "text/plain";
        if (v.SequenceEqual(secret)) {
            context.Response.Write("I know the secret");
        } else {
            context.Response.Write("Something is wrong with my secret.");
        }
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}