1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| def waf(s): blacklist = ['import','(',')','#','@','^','$',',','>','?','`',' ','_','|',';','"','{','}','&','getattr','os','system','class','subclasses','mro','request','args','eval','if','subprocess','file','open','popen','builtins','compile','execfile','from_pyfile','config','local','self','item','getitem','getattribute','func_globals','__init__','join','__dict__', '\\x'] flag = True for no in blacklist: if no.lower() in s.lower(): flag= False print(no) break return flag
@app.route("/") def index(): "我算啊算 算不到那个天命的女孩..." return render_template("index.html")
@app.route("/source") def source(): src = """ @app.route("/calc",methods=['GET']) def calc(): ip = request.remote_addr num = request.values.get("num") log = "echo {0} {1} {2}> ./tmp/log.txt".format(time.strftime("%Y%m%d-%H%M%S",time.localtime()),ip) if waf(num): try: data = eval(num) os.system(log) except: pass return str(data) else: return "waf!!" """ return src
@app.route("/calc",methods=['GET']) def calc(): ip = request.remote_addr num = request.values.get("num") log = "echo {0} {1}> ./tmp/log.txt".format(time.strftime("%Y%m%d-%H%M%S",time.localtime()),ip) if waf(num): try: data = eval(num) os.system(log) except: pass return str(data) else: return "waf!!"
|