| 12
 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
 53
 54
 55
 56
 57
 58
 
 | 请解释J1ngHong说:你想read flag吗?那么圣钥之光必将阻止你!
 但是小小的源码没事,因为你也读不到flag(乐)
 from flask import Flask,request
 import json
 
 app = Flask(__name__)
 
 def merge(src, dst):
 for k, v in src.items():
 if hasattr(dst, '__getitem__'):
 if dst.get(k) and type(v) == dict:
 merge(v, dst.get(k))
 else:
 dst[k] = v
 elif hasattr(dst, k) and type(v) == dict:
 merge(v, getattr(dst, k))
 else:
 setattr(dst, k, v)
 
 def is_json(data):
 try:
 json.loads(data)
 return True
 except ValueError:
 return False
 
 class cls():
 def __init__(self):
 pass
 
 instance = cls()
 
 @app.route('/', methods=['GET', 'POST'])
 def hello_world():
 return open('/static/index.html', encoding="utf-8").read()
 
 @app.route('/read', methods=['GET', 'POST'])
 def Read():
 file = open(__file__, encoding="utf-8").read()
 return f"J1ngHong说:你想read flag吗?
 那么圣钥之光必将阻止你!
 但是小小的源码没事,因为你也读不到flag(乐)
 {file}
 "
 
 @app.route('/pollute', methods=['GET', 'POST'])
 def Pollution():
 if request.is_json:
 merge(json.loads(request.data),instance)
 else:
 return "J1ngHong说:钥匙圣洁无暇,无人可以污染!"
 return "J1ngHong说:圣钥暗淡了一点,你居然污染成功了?"
 
 if __name__ == '__main__':
 app.run(host='0.0.0.0',port=80)
 
 
 
 |