1. 程式人生 > >【40】WEB安全學習----URL跳轉漏洞

【40】WEB安全學習----URL跳轉漏洞

URL跳轉漏洞/開放重定向漏洞

由於應用越來越多的需要和其他的第三方應用互動,以及在自身應用內部根據不同的邏輯將使用者引向到不同的頁面,如果實現不好就可能導致一些安全問題,特定條件下可能引起嚴重的安全漏洞。

對於URL跳轉的實現一般會有幾種實現方式:

  • META標籤內跳轉
  • javascript跳轉
  • header頭跳轉

通過以GET或者POST的方式接收將要跳轉的URL,然後通過上面的幾種方式的其中一種來跳轉到目標URL。一方面,由於使用者的輸入會進入Meta,javascript,http頭所以都可能發生相應上下文的漏洞,如xss等等,但是同時,即使只是對於URL跳轉本身功能方面就存在一個缺陷,因為會將使用者瀏覽器從可信的站點導向到不可信的站點,同時如果跳轉的時候帶有敏感資料一樣可能將敏感資料洩漏給不可信的第三方。

危害

惡意使用者完全可以借用URL跳轉漏洞來欺騙安全意識低的使用者,從而導致“中獎”之類的欺詐,這對於一些有線上業務的企業如淘寶等,危害較大,同時藉助URL跳轉,也可以突破常見的基於“白名單方式”的一些安全限制,如傳統IM裡對於URL的傳播會進行安全校驗,但是對於大公司的域名及URL將直接允許通過並且顯示會可信的URL,而一旦該URL裡包含一些跳轉漏洞將可能導致安全限制被繞過。

繞過方法

1. 單斜線"/"繞過
https://www.landgrey.me/redirect.php?url=/www.evil.com
2. 缺少協議繞過
https://www.landgrey.me/redirect.php?url=//www.evil.com
3. 多斜線"/"字首繞過
https://www.landgrey.me/redirect.php?url=///www.evil.com
https://www.landgrey.me/redirect.php?url=////www.evil.com
4. 利用"@"符號繞過
https://www.landgrey.me/redirect.php?url=https://
[email protected]
5. 利用反斜線"\"繞過 https://www.landgrey.me/redirect.php?url=https://www.evil.com\www.landgrey.me 6. 利用"#"符號繞過 https://www.landgrey.me/redirect.php?url=https://www.evil.com#www.landgrey.me 7. 利用"?"號繞過 https://www.landgrey.me/redirect.php?url=https://www.evil.com?www.landgrey.me 8. 利用"\\"繞過 https://www.landgrey.me/redirect.php?url=https://www.evil.com\\www.landgrey.me 9. 利用"."繞過 https://www.landgrey.me/redirect.php?url=.evil (可能會跳轉到www.landgrey.me.evil域名) https://www.landgrey.me/redirect.php?url=.evil.com (可能會跳轉到evil.com域名) 10.重複特殊字元繞過 https://www.landgrey.me/redirect.php?url=///www.evil.com//.. https://www.landgrey.me/redirect.php?url=////www.evil.com//..

其它繞過思路

  1. 跳轉到IP地址,而不是域名;
  2. 跳轉到IPV6地址,而不是IPv4地址;
  3. 將要跳轉到的IP地址用10進位制、8進位制、16進位制形式表示;
  4. 更換協議,使用ftp、gopher協議等;
  5. 借鑑SSRF漏洞繞過的tricks;
  6. CRLF注入不能xss時,轉向利用任意URL跳轉漏洞;