
一、通过客户端传送数据
(1)在应用程序中,确定隐藏表单字段、Cookie和URL参数明显用于通过客户端传送数据的所有情况。
(2)根据以上数据出现的位置及其名称与值,尝试确定它在应用程序逻辑中发挥的作用。
(3)修改数据在应用程序相关功能中的值。确定应用程序是否处理字段中提交的任意值,以及是否可以通过这样做干扰应用程序的逻辑或破坏任何安全控件。
(4)如果应用程序通过客户端传送模糊算法,从而在模糊数据中提交任意数据。即使它进行了安全加密,仍然可以在其他情况下重新提交这个数据,干扰应用程序的逻辑。
(5)如果应用程序使用ASP.NET ViewState,对其进行测试,确定是否可以破坏它,或者其中是否包含任何敏感信息。
(a)使用Burp Suite中的View分析器确定 EnableViewStateMac选项是否被激活,该选项表示ViewState的内容不能被修改。
(b)审查解码后的ViewState,确定它包含的所有敏感数据。
(c)修改一个被解码的参数值,重新对其编码,然后将它提交给ViewState。如果应用程序接受修改后的参数值,那么当把ViewState当做在应用程序中引入任意数据的一个输入渠道,并对它包含的数据执行与其他请求参数相同的测试。
二、客户端输入控件
(1)在将用户输入提交给服务器之前,确定使用长度限制和JavaScript检查等客户端控件对其进行确认的任何情况。当然,这些客户端控件可被轻易避开,因为渗透测试员可以向服务器发送任意请求。
(2)通过提交通常被客户端控件阻止的输入,轮流测试第一个受影响的字段,确定服务器是否使用相同的输入确认。
(3)能够避开客户端确认并不表示存在任何漏洞。因此,应该仔细审查应用程序实施的确认机制,弄清应用程序是否依赖客户端控件保护自身,阻止畸形输入,以及这些