最近公司WAF参与一项目的评测,其中有一项是关于XSS钓鱼攻击的测试,测试平台为WebGoat5.4,发现评测方的Phishing with XSS代码有问题,于是我就自己研究了一下,结果发现Webgoat中文手册中关于Phishing with XSS的解决方法居然也是错的,经过我N长时间的研究,终于解决了,分享给大家,希望大家以后在测试中少走弯路。
测试环境:
测试平台:Windows server 2003 + WebGoat5.4
客户端:Win7_X64 + firefox21.0
发现错误:
根据WebGoatV2.2中文手册中的指导说明,测试代码如下:
根据上述代码进行测试发现除了能生成一个表单以外,输入用户名和密码点击login压根不会获取到用户输入的用户名和密码,也就是说我们的XSS钓鱼攻击没有生效,这是为什么呢?官方文档也会出错? 你没有看错,确实这是官方的一个bug,owasp中国在文档翻译审校过程中可能也忽悠了这一点,下面我列出上述测试代码中的问题:
错误1:document.forms[0].user.value
利用forms集合获取form中的元素时,form标签个数指定错误,应该改为
document.forms[1].user.value或者document.form.user.value其它的同样改掉即可。
错误2:XSSImage=new Image;
这里在创建Image对象的时候,少了一个(),正确的应该是XSSImage=new Image();
错误3:type="submit" name="login"
最后的提交表单中的表单类型submit应该改为button,使用submit提交不能完成测试。
修正后的测试代码如下:
利用上述代码已经可以完成Phishing with XSS测试了,但是还是感觉不太好,就是在获取form表单的时候,还要数表单的个数,我们直接利用表单的name属性获取不是更快? 最终我改好的代码如下,和官方版的只有一点点不同,大家找找看。
大家可以在这里进行js压缩,压缩成一行。
参考文章:
http://blog.chinaunix.net/uid-204498-id-3287223.html
http://code.google.com/p/webgoat/issues/detail?id=35&can=1&q=phish
http://www.monmonkey.com/javascript/liulanqi8.html
http://hi.baidu.com/siyuchoulian/item/b1c3d018c02b12727a5f25c6
http://hi.baidu.com/ichaofan/item/685ab409fae68aebfe240da4
from www.waitalone.cn.thanks for it.
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论