Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何在web应用程序中操作视图状态数据?_Security_Testing_Penetration Testing - Fatal编程技术网

Security 如何在web应用程序中操作视图状态数据?

Security 如何在web应用程序中操作视图状态数据?,security,testing,penetration-testing,Security,Testing,Penetration Testing,我正在测试一个web应用程序,它是一个考勤提交页面。其功能是,如果两个用户碰巧更新了同一个学生的出勤情况,我们将显示一个最新更改的更改警告 为此,开发人员实现了一些逻辑,比如他们将保存我们在文本框中输入的值,这些值尚未保存在视图状态中。他们将比较视图状态、当前数据和数据库数据的值,并显示最新的更改 作为测试的一部分,我想知道是否存在,这样我就可以修改/破解开发人员存储在视图状态中的数据。使用javascript无法做到这一点,您可以通过javascript访问隐藏字段“\uu ViewState

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

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


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

使用javascript无法做到这一点,您可以通过javascript访问隐藏字段“\uu ViewState”,但它都是加密的。您只能看到加密的值

即使您通过javascript进行更改,服务器端也会检查数据是否被篡改

您可以使用下面的代码解密并查看viewstate。要使其工作,必须将ViewState设置为未加密

但是篡改viewstate是不太可能的,因为ASP.NET中默认情况下,
EnableViewStateMac
属性是
true

使用javascript无法做到这一点,您可以通过javascript访问隐藏字段“\uu ViewState”,但它都是加密的。您只能看到加密的值

即使您通过javascript进行更改,服务器端也会检查数据是否被篡改

您可以使用下面的代码解密并查看viewstate。要使其工作,必须将ViewState设置为未加密

但是篡改viewstate是不太可能的,因为ASP.NET中默认情况下,
EnableViewStateMac
属性是
true

这意味着我没有办法捕捉这些数据,您可以解密并查看这些数据。但是,如果服务器端设置更严格,则不太可能进行篡改。如果回答了您的问题,则将其标记为已回答。这意味着我没有选择捕获此数据的权利。您将能够解密并查看数据。但是,如果服务器端设置更严格,则不太可能进行篡改。如果这回答了您的问题,请将其标记为已回答
string str = System.Text.Encoding.ASCII.GetString(Convert.FromBase64Strin‌​g(txtViewState.Text)‌​);