尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Bugku easy_hash wp

Bugku easy_hash wp 1.解压附件得到py文件和一个output2.这个py文件是把flag的每一个字符MD5加密后分行存储到output文件当中3.由于哈希加密的特性我们可以预先列出所有字符的加密再查表4可以写py脚本来解密5.flag{We1c0me_t0_the_w0r1d_0f_md5}6.参考ai解题脚本为有空可以尝试自己写一个# # 1. 构建 {字符: MD5} 映射表# def build_md5_table(charset):为每个字符预计算 MD5return {ch: hashlib.md5(ch.encode()).hexdigest() for ch in charset}# # 2. 读取 output 文件每行一个 MD5# def read_hashes(filepath):读取哈希文件返回清洗后的列表with open(filepath, r, encodingutf-8) as f:return [line.strip() for line in f if line.strip()]# # 3. 查表解密# def decrypt(hashes, md5_table):根据哈希列表反向查表返回 (flag, 明细列表)reverse {h: ch for ch, h in md5_table.items()} # {MD5: 字符}details []for i, h in enumerate(hashes):ch reverse.get(h, ?) # 未命中用 ? 占位details.append((i, h, ch))flag .join(ch for _, _, ch in details)return flag, details# # 4. 主流程# def main():ensure_extracted()print([*] 构建字符集 MD5 映射表 ...)md5_table build_md5_table(CHARSET)print(f 字符集大小: {len(md5_table)})print(f[*] 读取哈希文件: {OUTPUT_FILE})hashes read_hashes(OUTPUT_FILE)print(f 共 {len(hashes)} 个 MD5 哈希)print([*] 查表解密 ...)flag, details decrypt(hashes, md5_table)print()print( * 60)print(f Flag: {flag})print( * 60)print()print([] 逐字符明细:)print(f {索引:5} {MD5 哈希:34} 字符)print(f {-*5} {-*34} ----)for idx, md5h, ch in details:print(f {idx:5} {md5h:34} {repr(ch)})input(\n按回车键退出...)return flagif __name__ __main__:main()
返回列表