[2024CISCN]国赛初赛WEB题目复现
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
其中uuid.getnode()返回机器的硬件地址(MAC地址),而get_machine_id()返回特定于平台的唯一ID。
4. 哈希所有的信息: 将所有上述信息串联并进行哈希,得到一个SHA1哈希值。
codefor bit in chain(probably_public_bits, private_bits): if not bit: continue if isinstance(bit, str): bit = bit.encode("utf-8") h.update(bit) h.update(b"cookiesalt")
这里,chain(probably_public_bits, private_bits)函数将公开信息和私有信息合并为一个序列,然后这个序列中的每一项都被加入到哈希中。
h.update(b"cookiesalt")添加了一个额外的“salt”值,以确保最终的哈希值是独特的。
5. 生成cookie名称:
cookie_name = f"__wzd{h.hexdigest()[:20]}"
将哈希值转换为16进制的字符串形式,并从中取出前20个字符。然后,它前面添加了"__wzd"前缀来生成最终的cookie_name。
再通过查找cookie_name关键字,找到set_cookie方法
通过观察可知,cookie的值是通过时间戳+pin码的hash,由"|"符号拼接而来的
再去看看验证逻辑
def check\_pin\_trust(self, environ: WSGIEnvironment) -> bool | None: """Checks if the request passed the pin test. This returns `True` if the request is trusted on a pin/cookie basis and returns `False` if not. Additionally if the cookie's stored pin hash is wrong it will return `None` so that appropriate action can be taken. """ if self.pin is None: return True val = parse_cookie(environ).get(self.pin_cookie_name) if not val or "|" not in val: return False ts_str, pin_hash = val.split("|", 1) try: ts = int(ts_str) except ValueError: return False if pin_hash != hash_pin(self.pin): return None return (time.time() - PIN_TIME)不难看出,由于时间戳是明文,所以伪造一个大一点的时间戳即可绕过检验。因为hash算法就在代码里,所以下后面就是如何找出伪造pin码的几个要素。
一般来说,需要通过报错来获取信息,但是不管对name怎么fuzz,由于传参限制都无法报错。看了其他师傅的wp后才发现,可以使得name参数为空来报错。。。。
报错信息中,有用的除了一些路径外,值得注意的是这几行
File "/app/server.py", line 7, in index app = Flask(__name__) @app.route('/') def index(): name = request.args['name'] return name + " no ssti" if __name__ == "\_\_main\_\_": app.run(host="127.0.0.1", port=5000, debug=True)无法ssti,也没什么用。
又坐牢了一段时间,无奈之下又只能瞅一瞅师傅们的wp,好