安全测试 使用owasp zap 绕过前端验证 非法数据输入

上一篇 / 下一篇  2017-10-26 11:30:29 / 个人分类:owasp zap

安全测试 使用owasp zap 绕过前端验证 非法数据输入

在安全等级1的情况下,点击登陆,输入用户名: test', 输入密码:password',然后点击登陆,查看相应提示信息,如下图:


Paste_Image.png

上图所示的提示信息,告诉我们,输入内容校验机制,发现了非法字符。图中的撇号(')就被检测到了,并且被应用的安全机制拦截了。

点击确定按钮,关闭告警窗口。

此时,我们查看ZAP中监听的请求历史,我们可以看到没有请求发出给服务器,这说明刚才的校验是一个客户端的校验机制,如此一来,我们可以通过代理拦截请求来绕过客户端的校验。

现在,启动请求拦截(这个功能在ZAP中成为断点),点击break on all requests按钮:


Paste_Image.png

下一步,我们使用合法的用户名和密码(test/password),再次点击login提交登陆请求。提交请求后,焦点会切换到ZAP,并弹出Break弹窗:


Paste_Image.png

上图所示的请求,就是我们刚刚在登陆页面发起的登陆请求,这个POST请求的参数中包含的用户名和密码,在这里可以修改成刚才不允许的包含非法字符的用户名和密码,然后点击发送按钮,将修改后的请求发给服务器,如下图所示:


Paste_Image.png

包含非法字符参数的请求发给服务器后,返回的错误信息如下图,这就说明,服务器端没有加对该异常的处理和校验:


Paste_Image.png

如果要关闭 ZAP 断点,再次点击之前的那个圆形按钮即可。

总结

这篇文章,我们使用 ZAP 的代理来拦截一个合法请求,修改为非法请求后,再发给服务器,触发异常响应。前面几部,我们开启了应用的安全保护来检测撇号(非法字符)。然后我们测试了几个参数,用来查看应用的校验情况。当告警窗口出现的时候,ZAP代理中没有像后台发送任何请求,基于此我们判断,应用的校验机制是客户端校验(如JavaScript校验)。然后基于以上信息,我们提交了一个合法请求,在ZAP代理截取了请求后,这就使得我们可以绕过客户端的校验。 通过修改请求参数,添加非法字符,构造恶意请求,发给服务器,返回错误响应。


TAG:

 

评分:0

我来说两句

Open Toolbar