Stack pivoting
ROP 可能需要很长空间放置长串 ROP Chain,有时并不会有那么多发挥空间,可能很短甚至只能控第一次rip(function pointer等),没有足够的空间放 ROP payload
若可以找到其他地方有足够空间放置 ROP payload,则可通过较少 gadget 来将 stack 搬至 ROP payload 的位置,再进行 ROP,即为 Stack pivoting(stack migration)
并不复杂?甚至认真读了官方文档就可以发现漏洞?原理就是 log4j2 提供的正常功能?
对于${jndi:}格式的日志默认执行JndiLoop.lookup导致的RCE。日志的任何一部分插入${}都会进行递归处理,也就是说log.info/error/warn等方法,如果日志内容可控则可注入恶意命令。
比如:登录用户名是可控输入,后端一般用日志处理相关的输入信息,如:log.error("xxx, {}",username),可控输入能够进入 Log4j2 处理程序
之前看 Docker 手册时顺手记的一些笔记比较杂乱,这里总结日常使用常用的命令
1 | # 搜索镜像 |