POP Gadgets

POP Gadgets指的是在通过带入序列化数据,经过一系列调用的代码链,其中POP指的是(Property-Oriented Programming),即面向属性编程,和逆向那边的ROP面向返回编程(Return-Oriented Programing)很相似,面向属性编程POP常用于上层语言构造特定调用链的方法,与二进制利用中的面向返回编程ROP的原理相似,都是从现有运行环境中寻找一系列的代码或者指令调用,然后根据需求构成一组连续的调用链。在控制代码或者程序的执行流程后就能够使用这一组调用链做一些工作了。两者的不同之处在于ROP更关注底层,而POP只关注对象与对象之间的调用关系

Gadgets是小工具的意思,POPGadgets即为面向属性编程的利用工具、利用链。当我们确定了可以带入序列化数据的入口后,便是要寻找对应的POP链。一些基础库和框架恰恰提供了可导致命令执行POP 链的环境,所以引入了用户可控的序列化数据,并使用了不安全的基本库,就意味着存在反序列化漏洞。

Last modification:April 27th, 2020 at 09:54 am