【问题标题】:How to manipulate a view state data in web application?如何在 Web 应用程序中操作视图状态数据?
【发布时间】:2017-10-07 09:42:24
【问题描述】:

我正在测试一个 Web 应用程序,它是一个考勤提交页面。其功能是,如果两个用户碰巧更新了相同的学生出勤率,我们将显示最新更改的更改警告。

为此,开发人员已经实现了一些逻辑,例如他们将保存我们在文本框中输入的值,而这些值尚未保存在视图状态中。他们将比较视图状态、当前数据和数据库数据的值并显示最新更改.

作为测试的一部分,我想知道是否存在,以便我可以修改/破解开发人员存储在视图状态中的数据。

【问题讨论】:

    标签: security testing penetration-testing


    【解决方案1】:

    你不能使用 javascript 来做到这一点,你可以通过 JavaScript 访问隐藏字段“__ViewState”,但它都是加密的。您只能看到加密的值。

    即使你通过javascript更改它,服务器端也会检查数据是否被篡改。

    您可以使用以下代码解密并查看视图状态。为此,必须将 ViewState 设置为未加密 More Info

    string str = System.Text.Encoding.ASCII.GetString(Convert.FromBase64Strin‌​g(txtViewState.Text)‌​);
    

    但是由于EnableViewStateMac 属性在 ASP.NET 中默认为true,因此不太可能篡改视图状态 More Info

    【讨论】:

    • 这意味着我无法正确捕捉这些数据
    • 您将能够解密并查看数据More Information。但是,如果服务器端设置更严格,则不太可能进行篡改。 More Info如果这回答了您的问题,请将其标记为已回答
    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 2014-07-24
    • 2015-10-30
    • 2023-03-10
    • 2012-05-13
    • 2019-06-05
    • 2012-06-11
    • 1970-01-01
    相关资源
    最近更新 更多