<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    滲透測試中的 URL 重定向

    VSole2023-02-13 14:06:07

    開放重定向(Open Redirect),也叫URL跳轉漏洞,是指服務端未對傳入的跳轉url變量進行檢查和控制,導致誘導用戶跳轉到惡意網站,由于是從可信的站點跳轉出去的,用戶會比較信任。

    滲透測試中的 URL 重定向

    常見的 URL 重定向漏洞都比較明顯,但是也有少數例外,這里總結了三種常見的 URL重定向類型。

    類型一:基于參數的 URL 重定向

    這是最常見的,通過修改參數中的跳轉地址,查看是否重定向到我們指定的頁面,比如:

    類型二:恢復原訪問頁導致的重定向

    通常為了提高用戶的體驗,在用戶登錄之后,往往會跳轉至原來的訪問頁面,比如:

    https://example.com/login?returnUrl=/dashboard

    登錄之后會跳轉至 /dashboard,并且是以登錄后的身份,這時我們可以測試是否會跳轉目標以外的網站,比如:

    https://example.com/login?returnUrl=https://www.xazlsec.com

    如果登錄成功之后,跳轉至信安之路的網站,那么該漏洞就存在。

    類型三:基于 html 標簽的 URL 跳轉

    實現 URL 重定向,除了在 header 中設置 Location 字段外,還有兩種實現方式:

    1、Meta 標簽,代碼如下:

    <head>  <meta http-equiv="Refresh" content="0; URL=https://example.com/" />head>
    

    2、javaScript 代碼:

    window.location = "https://example.com/";
    

    如果是這兩種方式實現 URL 跳轉,而 URL 參數可控,則可能存在 XSS 漏洞。

    類型四:基于 DOM 的 URL 重定向

    JavaScript 可以直接從瀏覽器獲取數據。Web 瀏覽器中的 URL,例如:

    https://example.com/#dashboard

    dashboard 不會被發送至后端,如果頁面中使用如下 JavaScript 代碼:

    // use substr() to remove the '#'window.location = window.location.hash.substr(1)
    

    攻擊者可以創建如下鏈接:

    https://example.com/#https://www.xazlsec.com

    訪問之后將跳轉至信安之路的網站。

    URL 重定向漏洞修復

    方案一:URL 白名單

    可以將需要跳轉的頁面,保存至數據庫,然后用對應的 id 進行跳轉,比如:

    https://example.com/redirect?externalPage=1https://example.com/redirect?externalPage=2https://example.com/redirect?externalPage=3
    

    如果只是重定向到本網站的頁面,可以使用頁面命名方案,比如:

    https://example.com/redirect?page=dashboardhttps://example.com/redirect?page=accounthttps://example.com/redirect?page=settings
    

    方案二:正則表達式

    正則表達式的方案,無需操作數據庫,但是設置不好容易被繞過,比如下面的案例:

    redirect_url = urlparse.urlparse(url)# 漏洞參數原因,僅匹配 url前綴if bool(re.search("^https://example.com", url)):
    

    只是搜索 url 中是否包含 https://example.com 且以它為開頭,可以用下面的 poc 繞過:

    https://example.com/redirect?page=https://example.com.evil-hackers.corp.com

    要使用正則表達式,使用尾部斜杠以防止惡意使用子域:

    redirect_url = urlparse.urlparse(url) #修復后,限定完整域名if bool(re.search("^https://example.com/", url)):
    

    這樣就確保不會重定向到設置之外的域。

    方案三:任意 URL 跳轉功能

    有些功能設計之初就是為了能夠跳轉至任意網站,比如一些推廣功能,這種情況下,最基本的也要對跳轉的協議做限制,比如只允許跳轉以 https?:// 開頭的網站。

    在跳轉至外部網站時,設置提示,提醒用戶,比如:

    總結

    URL 重定向本身并不是壞事,但您必須采取措施確保用戶都知道發生的外部重定向,并在必要時盡量減少重定向到的目標。

    重定向滲透測試
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    開放重定向,也叫URL跳轉漏洞,是指服務端未對傳入的跳轉url變量進行檢查和控制,導致誘導用戶跳轉到惡意網站,由于是從可信的站點跳轉出去的,用戶會比較信任。滲透測試中的 URL 重定向常見的 URL 重定向漏洞都比較明顯,但是也有少數例外,這里總結了三種常見的 URL重定向類型。returnUrl=/dashboard登錄之后會跳轉至 /dashboard,并且是以登錄后的身份,這時我們可以測試是否會跳轉目標以外的網站,比如:https://example.com/login?
    網址縮短器允許用戶將200個字符的URL轉換成實質上更少的內容。在這篇文章中,研究人員分享了其濫用URL縮短器的經驗,并涵蓋2種不同實現的3種不同攻擊場景。這似乎在整個企業內部使用,因為大多數收集的URL會重定向到登錄頁面。但是,通過訪問一個無效的URL,應用程序將進入損壞的404頁面。檢查源代碼發現其暴露了多個端點,這些端點允許經過身份驗證的用戶,添加/編輯/刪除 URL以及查看統計信息。
    網上安全滲透測試工具整理全集,部分鏈接可能失效,但可以搜索到
    由于測試過程中很多系統我們能接觸到的只有一個登陸界面,所以要充分挖掘漏洞,進行深入操作登錄 注冊萬能密碼繞過登錄存在 SQL 注入的情況下,有可能使用萬能密碼直接登錄admin' or '1'='1'--. 有超級多登錄口 SQL 注入存在 SQL 注入的話直接注出賬密有些可以構造用戶注入登錄,比如熊海 cms 后臺登錄處存在 sql 注入$login=$_POST['login'];
    常見邊界拓撲第一種情況Inbound Stream ---> Firewall ---> Target. 這其中無論負載均衡設備轉發或者防火墻的,均有可能存在帶來源IP轉發或者不帶來源IP轉發的情況,帶來源IP或者端口的方案我們在下文的常見端口復用實現機制中有所介紹,該如何在此種情況下實現端口復用,
    常見邊界拓撲第一種情況Inbound Stream ---> Firewall ---> Target. 這其中無論負載均衡設備轉發或者防火墻的,均有可能存在帶來源IP轉發或者不帶來源IP轉發的情況,帶來源IP或者端口的方案我們在下文的常見端口復用實現機制中有所介紹,該如何在此種情況下實現端口復用,而不帶來源IP或者端口的情況目前網上討論得不多,下文也將就這類情況進行分析提出解決方案。
    該字典會重復附加,直到達到可執行文件的最終所需大小。通過監控對蜜源文件的訪問,藍隊可以檢測滲透測試人員或惡意行為者橫向移動時掃描的包含用戶名和cpasswords的GPP文件。它用于被動收集大量IP地址相關情報信息,并嘗試推斷隱藏關系。WMIOps主要用于滲透測試或紅隊活動。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类