1. 程式人生 > 實用技巧 >URL重定向

URL重定向

url重定向漏洞也稱url任意跳轉漏洞

服務端未對傳入的跳轉url 變數進行檢查和控制,可能導致可惡意構造任意一個惡意地
址,誘導使用者跳轉到惡意網站。
由於是從可信的站點跳轉出去的,使用者會比較信任,所以跳轉漏洞一把用於釣魚攻擊,
通過轉到惡意網站欺騙使用者輸入使用者名稱和密碼盜取使用者資訊,或欺騙使用者進行金錢交易;還
可以造成xss 漏洞。

攻擊方式及危害

url跳轉中最常見的跳轉在登陸口,支付口
藉助URL 跳轉,也可以突破常見的基於“白名單方式”的一些安全限制,如傳統IM 裡對於URL 的傳播會進行安全校驗,但是對於大公司的域名或URL 將直接允許通過並且顯示會可信的URL,而一旦該URL 裡包含一些跳轉漏洞將可能導致安全限制被繞過。
如果引用一些資源的限制是依賴於“白名單方式”,同樣可能被繞過導致安全風險,譬如
常見的一些應用允許引入可信站點如baidu.com 的視訊,限制方式往往是檢查URL 是否是
baidu.com 來實現,如果baidu.com 內含一個url 跳轉漏洞,將導致最終引入的資源屬於不可
信的第三方資源或者惡意站點,最終導致安全問題。

漏洞檢測

修改引數中的合法URL 為非法URL,然後檢視是否能正常跳轉或者響應包是否包含了任意的構造URL

  • 常見引數:
    redirect
    url
    redirectUrl
    callback
    return_url
    toUrl
    ReturnUrl
    fromUrl
    redUrl
    request
    redirect_to
    redirect_url
    jump
    jump_to
    target
    to
    goto
    link
    linkto
    domain
    oauth_callback

bypass(繞過)

例子:
存在URL重定向漏洞的網站http://www.aaa.com/acb
login.aaa.com是一個子域名
http://test.com

是重定向的目標網站

  • @繞過
    用這方法在火狐裡進行跳轉,會有彈窗提示,在其它遊覽器則沒有
    http://www.aaa.com/acb?Url=http://[email protected]//ssrf也可用
    後面的test.com 就是要跳轉到的域名,前面的域名都是用來輔助以繞過限制的
  • ?繞過
    http://www.aaa.com/acb?Url=http://test.com?login.aaa.com
    ?放到你新增的想要跳轉的域名的後面,
  • #繞過
    http://www.aaa.com/acb?Url=http://test.com#login.aaa.com
  • /繞過
    http://www.aaa.com/acb?Url=http://test.com/login.aaa.com

    正斜槓前面跟上你想跳轉的域名地址
  • \繞過
    • 兩個反斜槓繞過方法
      http://www.aaa.com/acb?Url=http://test.com\\login.aaa.com
      兩個反斜槓前面跟上你想跳轉的域名地址
    • 一個反斜槓繞過方法
      http://www.aaa.com/acb?Url=http://test.com\login.aaa.com
    • 一個反斜槓一個點
      http://www.aaa.com/acb?Url=http://test.com\.login.aaa.com
  • 利用白名單缺陷繞過限制
    有的域名白名單限制是不全的,比如如果想利用一個跳轉,而這個跳轉是通用,在這個公司網站很多子域名等都可以跳轉,那麼你買個域名也不算貴對吧,為什麼這麼說呢,這個問題就是白名單限制不當,比如,當跳轉的域名包含這個網站下的所有域名,
    比如:http://www.aaa.com/acb?Url=http://login.aaa.com
    這個login.aaa.com 也可以改成aaa.com 同樣可以跳轉對吧,因為白名單裡只要有包含這個域名就直接成功跳轉。那麼當我在這個域名前面加上如testaaa.com,白名單裡會檢查是否包含aaa.com 這個域名,包含,然後直接跳轉,而並沒有檢查這個域名的整個資訊,然後可以利用這個問題,直接註冊一個testaaa.com 這個域名就可以利用這個跳轉。
  • 多重驗證&跳轉繞過限制
    比如你登陸賬戶後會出現另一個驗證頁面,輸入手機驗證碼進行驗證,此時這上面的URL 很可能存在任意跳轉的問題。多重跳轉的問題導致可繞過URL 限制
    http://www.aaa.com/acb?Url=http://login.aaa.com/acb?url=http://login.aaa.com
    這個結構的多重跳轉你修改最後面的URL 就可以達到任意URL 跳轉,中間的URL 就沒必要動了。
  • 點選觸發達到繞過URL 跳轉限制
    比如很多登陸頁面的地方,其URL 是一個跳轉的URL,
    如:http://www.aaa.com/acb?Url=http://test.com
    你直接修改了後面為任意URL,但是還是停留在原地,似乎沒什麼問題,但是,當你輸入賬號和密碼後點擊登陸按鈕後,就會觸發跳轉,當然,這個賬戶和密碼不一定要對的,隨便都可以,但得視系統而定吧。
  • xip.io繞過
    http://127.0.0.1/url.php?username=1&password=1&redict=http://www.xiaozhupeiqi.com.220.181.57.217.xip.io會跳轉到百度
  • 白名單網站可信
    如果url跳轉點信任百度url,google url或者其他,則可以多次跳轉達到自己的惡意介面。
  • 協議繞過
    http與https協議轉換嘗試,或者省略
    http://127.0.0.1/url.php?username=1&password=1&redict=//[email protected]
    http://127.0.0.1/url.php?username=1&password=1&redict=////[email protected]//多斜線
  • xss跳轉