猫咪的克星
本文最后更新于 2309 天前,其中的信息可能已经有所发展或是发生改变。

一、eval()  函数用来执行一个字符串表达式,并返回表达式的值

二、nc  重定向      nc -e ./【】.py  202.38.95.46 12009

#!/usr/bin/env python3

import sys

input()
while True:
​    expr = input()
​    print(expr, file=sys.stderr)#将输入的信息输出到stderr管道中
​    ans = eval(expr)
​    print(ans, file=sys.stderr)#将输入信息求值后输出到stderr管道中
​    print(ans)

 

三、replace()   方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法  str.replace(old, new[, max])

 

#!/usr/bin/env python3

import sys

tricks=[
​        	"__import__('os').system('find ~')",
​                "__import__('time').sleep(100)",
​                 r"print('\x1b\x5b\x33\x3b\x4a\x1b\x5b\x48\x1b\x5b\x32\x4a')",
​                'exit()'
]

def removetricks(s):  #应传入字符串str
​    for t in tricks:
​        s = s.replace(t,'None')  #将列表中的匹配项换为None
​    return s

input()

for i in range(100):
​    print(i, file=sys.stderr)
​    expr = input()
​    print(expr, file=sys.stderr)
​    ans = eval(removetricks(expr))  #调用eval()时需要把没有返回值的表达式剔除
​    print(ans, file=sys.stderr)
​    print(ans)

print(input(), file=sys.stderr)

 

writeup地址 : https://github.com/ustclug/hackergame2018-writeups

上一篇
下一篇