http://mdsec.net/updates/8/
http://mdsec.net/updates/14/
http://mdsec.net/updates/18/
http://mdsec.net/updates/23/
http://mdsec.net/updates/48/
注解
如果应用程序使用可由用户控制的数据指定框架的目标URL,这时会发生一种与重定向并非完全相同但相似现象。如果可以构建一个URL,将外部URL的内容加载到子框架中,就可以相当隐秘地实施重定向攻击。这时,可以使用其他内容仅替换应用程序的部分界面,并使浏览器地址栏中的域保持不变。
以下情况很常见:用户控制的数据用于设置重定向的目标,但却被应用程序以某种方式过滤或净化掉,以阻止重定向攻击。这时并没有办法确定应用程序是否易于受到攻击;因此,接下来应该探查应用程序采用的防御机制,确定是否能够避开它们以执行任意重定向。通常会遇到以下两种防御:尝试阻止绝对URL、附加一个特殊的绝对URL前缀。
阻止绝对URL
应用程序可能会检查用户提交的字符串是否以http://开头,如果是,就阻止该请求。这时,使用下面的技巧可以成功创建一个指向外部Web站点的重定向(请注意第三行开头的空格):
另外,应用程序可能会删除http://及任何指定的外部域,尝试净化绝对URL。这时,使用上 面的技巧可以成功避开净化;同时还应测试下面的攻击是否可行:
有时,应用程序可能会检验用户提交的字符串是否以指向它自己的域名的绝对URL开头,或是否包含这个URL。这时,下面的攻击可能有效: