from: http://qa.taobao.com/?p=12171
查找重定向漏洞的第一步是确定应用程序中的所有重定向。应用程序可以通过下面几种方式使用户浏览器重定向,指定一个绝对或者相对的url。
1、 http重定向使用一条状态码为3XX的消息与一个指定重定向目标的location消息头。常见的重定向有301(永久重定向)及302(暂时重定向)两种,例如,http/1.1 302 object moved Location=http://***
2、 http Refresh消息头可用于在一个固定时间间隔后重新加载一个任意url的页面,其内容可为0,以立即触发一个重定向。例如http/1.1 200 OK Refresh:0;url=http://***
3、 javascript中有各种api可将浏览器重定向到任意一个url。例如:<script>document.location=” http://***”;</script>
首先我们确定应用程序中使用重定向的所有位置,一个有效方法是使用拦截代理服务器浏览应用程序,并监控访问页面的请求,如图像、脚本文件等。如果一个导航操作导致几个连续请求,分析它使用什么方法进行重定向。
如果用户数据被一个包含绝对url的重定向处理,那么修改url中的域名,并测试应用程序是否重定向到另一个域。
如果用户数据被一个包含相对url的重定向处理,将相对url修改为指向另一个域的绝对url,并测试应用程序是否重定向到这个域。
重定向漏洞目前使用自动化扫描工具很难扫出来,还是需要我们手动的查找确认。
另外还有flash的跳转...这个比较难检测...