Crypto

哈夫曼之谜

哈夫曼.png

下载下来就一个文件,里面全是0101和一些字符。
搜索哈夫曼,了解到哈夫曼压缩时用到的哈夫曼树
猜测下面的字符代表频率。
哈夫曼树建立过程如下

哈夫曼树建立.gif

字符不多,直接在草稿纸上手写。

哈夫曼手写.jpg

圆圈内就是构建好后对应字符的哈夫曼编码
在建立过程中,对于频率相同的字符在不同程序上排序的前后顺序可能不同,所以存在相同频率的字符哈夫曼编码不同。比如字符5和字符d的频率都是9,则字符d的哈夫曼编码可以是01,也可以是10。
然后对上面的01串进行解码,一般是以flag{开头,所以前几个字符的哈夫曼编码可以确定下来。
但字符5和字符d的无法确定,所以得到两个flag。
flag{ddf5dfd0f05550500a5af55dd0d5d0ad}
flag{55fd5f50f0ddd0d00adafdd5505d50a5}
都提交上去就可以了


Hardgame

Hardgame.png

有三个flag,三段加密。

flag1

加密如下

Hardgame-flag1.png

RSA加密,由于e只有2,相当于把明文m平方而已,得到的c也比n小很多。
尝试把c开根号看能否得到明文。
一般的python开根号方法精度较低,对大整数开出来的根号准确度低。
发现使用gmpy2库可以对大整数开根号。

import gmpy2
import libnum
c = 9217979941366220275377875095861710925207028551771520610387238734819759256223080175603032167658086669886661302962985046348865181740591251321966682848536331583243529
m = gmpy2.isqrt(c)
m = int(m)
m_text = libnum.n2s(m)
print(m_text)

得到flag1flag1{Th1s_i5_wHat_You_ne3d_FirsT}

flag2

加密过程是DES-ECB-PKCS5,密钥是随机的8字节的大写字母

DES ECB(电子密本方式)其实非常简单,就是将数据按照8个字节一段进行DES加密或解密得到一段段的8个字节的密文或者明文,最后一段不足8个字节(一般补0或者F),按照需求补足8个字节进行计算(并行计算),之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。

ECB.png

填充使用的是PKCS5,就是全部填充到8字节,后面缺几位就填几
如:后面缺4个字节,就填04040404;
8个字节都是空,就填0808080808080808

PKCS5.png

该算法对很多行明文按行分开加密,密钥是8字节,ECB加密是8字节一组,如果遇到空的8字节,就会出现填充后明文为0808080808080808与密文段进行异或。

截取各行密文的后8字节,统计发现ea9c3c12181a1e8216d0aa455a272fde都出现过多次。
将密文放进hashcat进行爆破

hashcat64.exe -a 3 -m 14000 d33ad316eb246e5c:0808080808080808 -w 3 -O ?u?u?u?u?u?u?u?u
hashcat64.exe -a 3 -m 14000 ea9c3c12181a1e82:0808080808080808 -w 3 -O ?u?u?u?u?u?u?u?u
flag2.png

d33ad316eb246e5c解不出来
ea9c3c12181a1e82很快可得到密钥为JFRYOMPR

然后解密脚本如下

from pyDes import *Des_Key = "JFRYOMPR"
def DesDecrypt(str):k = des(Des_Key, ECB, pad=None, padmode=PAD_PKCS5)DecryptStr = k.decrypt(str.decode('hex'))return DecryptStrwith open('enc.txt','r') as fe:for line in fe.readlines():print DesDecrypt(line.strip('\n'))

得到flag2flag2{Fuck_Y0u_cAn_Ge7_Se3ond}

再看最终的flag
用的是rsa加密
n放到factordb无法解密
e也足够大
这里的加密用了类似于CBC的方式,区别在于先加密再异或
但分组长度过短,2字节一组
所以可以构建一个明文于密文的对应字典,通过查找的方式找回原文
且由于是先加密后异或,所以可以从后往前按顺序找出每个分组异或前的加密结果

解密脚本如下

#!usr/bin/env python
# -*- coding: utf-8 -*-
import base64
import binascii
import string
import libnum
from Crypto.Util import number
from Crypto.Util.strxor import strxorn=0x834b44a67ea419e1c3e665cedf7790ebc5fb013e2304861b667232e7ec1cae53eb253639b348a6702561671a5c5c9105eacd5d48de51427fc49f22ed2d9b60f98c50713ac95f2ac324fa58b90e0c07ab688becb771d92224be68474586376a4cd9a0ea96d5584184cbb7ad3889fd6c1a4ae3791e67a4ee6f220491abbbda2006addc6032999238cc010df759c868485522ee17e520569b7e746b0c770065f4622894afcfd46257b7c3646f15d65d561ab8e22e4f03cfbfa53ec4109115feeced84c398286bb79c58a7d640a2faec2c50285558d6b11d8ebc25eae6ece9c418dd795c0c11f459c815582c059935028cafb09b6603cc44a48f3823d0aeda73fec7
e=0x9ae923
c="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"c_dec = base64.b64decode(c).strip()
#一开始iv有256位 每加密一个分组增加256位
length = len(c_dec)/256
#找出每组密文异或前的内容
c_list = []
for i in xrange(length,1,-1):c_list.insert( 0, strxor( c_dec[(i-1)*256:i*256], c_dec[(i-2)*256:(i-1)*256] ) )#构建爆破字典
dic = []
for i in range(0,0xffff):m = str(hex(i)[2:]).rjust(4,'0')qqq = number.bytes_to_long(m)www = pow(qqq, e, n)eee = binascii.unhexlify('%.512x' % www)dic.append(eee)#开始反查
m_hex = ""
for i in c_list:if i in dic:m_hex += hex(dic.index(i))[2:].rjust(4,'0')else:print "not found"print m_hexflag1 = int('flag1{Th1s_i5_wHat_You_ne3d_FirsT}'.encode('hex'),16)
flag2 = int('flag2{Fuck_Y0u_cAn_Ge7_Se3ond}'.encode('hex'),16)m_num = libnum.s2n(binascii.unhexlify(m_hex))
m_num /= flag1*flag2
print libnum.n2s(m_num)

得到结果

10652cdf92fb9032a2e4c699448e3ca4ca266a667ccc5af2c95fae7f6de79fcd1fa52cfe72ee7fa3ab90a58c0c2310cfcc42dab372cd17cd0c8282834211d3bbd86324d4b7cb7bb279e6c34876ef259d3357ab66186e0bfe0c5db9c5a7067622dcbc06a42265
flag{64b60d7c2ddcf37f8d50358be1c35f45}

Misc

最短的路

最短的路题目.png

简单来说就是找到最短路径,想起迪杰斯特拉算法
找了一下,发现python有自带的图论库networkx,里面自带迪杰斯特拉算法。
代码如下:

import networkx as nx
import matplotlib.pyplot as pltG=nx.Graph()
G.add_edge('FloraPrice','E11',weight=1)
G.add_edge('FloraPrice','E9',weight=1)
G.add_edge('FloraPrice','75D}',weight=1)
G.add_edge('NoraFayette','E11',weight=1)
G.add_edge('NoraFayette','E10',weight=1)
G.add_edge('NoraFayette','E13',weight=1)
G.add_edge('NoraFayette','E12',weight=1)
G.add_edge('NoraFayette','E14',weight=1)
G.add_edge('NoraFayette','E9',weight=1)
G.add_edge('NoraFayette','E7',weight=1)
G.add_edge('NoraFayette','E6',weight=1)
G.add_edge('E10','SylviaAvondale',weight=1)
G.add_edge('E10','MyraLiddel',weight=1)
G.add_edge('E10','HelenLloyd',weight=1)
G.add_edge('E10','KatherinaRogers',weight=1)
G.add_edge('VerneSanderson','E7',weight=1)
G.add_edge('VerneSanderson','E12',weight=1)
G.add_edge('VerneSanderson','E9',weight=1)
G.add_edge('VerneSanderson','E8',weight=1)
G.add_edge('E12','HelenLloyd',weight=1)
G.add_edge('E12','KatherinaRogers',weight=1)
G.add_edge('E12','SylviaAvondale',weight=1)
G.add_edge('E12','MyraLiddel',weight=1)
G.add_edge('E14','SylviaAvondale',weight=1)
G.add_edge('E14','75D}',weight=1)
G.add_edge('E14','KatherinaRogers',weight=1)
G.add_edge('FrancesAnderson','E5',weight=1)
G.add_edge('FrancesAnderson','E6',weight=1)
G.add_edge('FrancesAnderson','E8',weight=1)
G.add_edge('FrancesAnderson','E3',weight=1)
G.add_edge('DorothyMurchison','E9',weight=1)
G.add_edge('DorothyMurchison','E8',weight=1)
G.add_edge('EvelynJefferson','E9',weight=1)
G.add_edge('EvelynJefferson','E8',weight=1)
G.add_edge('EvelynJefferson','E5',weight=1)
G.add_edge('EvelynJefferson','E4',weight=1)
G.add_edge('EvelynJefferson','E6',weight=1)
G.add_edge('EvelynJefferson','E1',weight=1)
G.add_edge('EvelynJefferson','E3',weight=1)
G.add_edge('EvelynJefferson','E2',weight=1)
G.add_edge('RuthDeSand','E5',weight=1)
G.add_edge('RuthDeSand','E7',weight=1)
G.add_edge('RuthDeSand','E9',weight=1)
G.add_edge('RuthDeSand','E8',weight=1)
G.add_edge('HelenLloyd','E11',weight=1)
G.add_edge('HelenLloyd','E7',weight=1)
G.add_edge('HelenLloyd','E8',weight=1)
G.add_edge('OliviaCarleton','E11',weight=1)
G.add_edge('OliviaCarleton','E9',weight=1)
G.add_edge('EleanorNye','E5',weight=1)
G.add_edge('EleanorNye','E7',weight=1)
G.add_edge('EleanorNye','E6',weight=1)
G.add_edge('EleanorNye','E8',weight=1)
G.add_edge('E9','TheresaAnderson',weight=1)
G.add_edge('E9','PearlOglethorpe',weight=1)
G.add_edge('E9','KatherinaRogers',weight=1)
G.add_edge('E9','SylviaAvondale',weight=1)
G.add_edge('E9','MyraLiddel',weight=1)
G.add_edge('E8','TheresaAnderson',weight=1)
G.add_edge('E8','PearlOglethorpe',weight=1)
G.add_edge('E8','KatherinaRogers',weight=1)
G.add_edge('E8','SylviaAvondale',weight=1)
G.add_edge('E8','BrendaRogers',weight=1)
G.add_edge('E8','LauraMandeville',weight=1)
G.add_edge('E8','MyraLiddel',weight=1)
G.add_edge('E5','TheresaAnderson',weight=1)
G.add_edge('E5','BrendaRogers',weight=1)
G.add_edge('E5','LauraMandeville',weight=1)
G.add_edge('E5','CharlotteMcDowd',weight=1)
G.add_edge('E4','CharlotteMcDowd',weight=1)
G.add_edge('E4','TheresaAnderson',weight=1)
G.add_edge('E4','BrendaRogers',weight=1)
G.add_edge('E7','TheresaAnderson',weight=1)
G.add_edge('E7','SylviaAvondale',weight=1)
G.add_edge('E7','BrendaRogers',weight=1)
G.add_edge('E7','LauraMandeville',weight=1)
G.add_edge('E7','CharlotteMcDowd',weight=1)
G.add_edge('E6','TheresaAnderson',weight=1)
G.add_edge('E6','PearlOglethorpe',weight=1)
G.add_edge('E6','BrendaRogers',weight=1)
G.add_edge('E6','LauraMandeville',weight=1)
G.add_edge('E1','LauraMandeville',weight=1)
G.add_edge('E1','BrendaRogers',weight=1)
G.add_edge('E3','TheresaAnderson',weight=1)
G.add_edge('E3','BrendaRogers',weight=1)
G.add_edge('E3','LauraMandeville',weight=1)
G.add_edge('E3','CharlotteMcDowd',weight=1)
G.add_edge('E3','flag{',weight=1)
G.add_edge('E2','LauraMandeville',weight=1)
G.add_edge('E2','TheresaAnderson',weight=1)
G.add_edge('KatherinaRogers','E13',weight=1)
G.add_edge('E13','SylviaAvondale',weight=1)nx.draw(G,pos = nx.random_layout(G),node_color = 'b',edge_color = 'r',with_labels = True,font_size =18,node_size =20)
plt.savefig("wuxiangtu.png")
plt.show()
rs=nx.dijkstra_path(G,'flag{','75D}')
print(rs)

运行结果如下

迪杰斯特拉算法.png


参考链接
西湖论剑2019 WriteUp -梅子酒的书札

西湖论剑CTF2019相关推荐

  1. 2023西湖论剑wirteup

    2023西湖论剑wirteup 文章目录 2023西湖论剑wirteup 机你太美 take_the_zip_easy mp3 Isolated Machine Memory Analysis 前言: ...

  2. 2019西湖论剑·网络安全大会开幕 安全赋能数字新时代...

    2019年4月20日-21日,以"安全:赋能数字新时代"为主题的2019西湖论剑•网络安全大会(以下简称"西湖论剑")在杭州国际博览中心举行.西湖论剑自2012 ...

  3. 2019西湖论剑·网络安全大会开幕 安全赋能数字新时代

    2019年4月20日-21日,以"安全:赋能数字新时代"为主题的2019西湖论剑•网络安全大会(以下简称"西湖论剑")在杭州国际博览中心举行.西湖论剑自2012 ...

  4. 远禾科技出席阿里ASRC生态大会 并参与安恒西湖论剑...

    近日,由阿里安全响应中心举办的2019 ASRC生态大会与安恒承办的2019西湖论剑·网络安全大会在互联网之都杭州成功召开,作为网络安全行业的两大盛会,得到了协会领导.业界权威.行业大咖.领导品牌.企 ...

  5. 远禾科技出席阿里ASRC生态大会 并参与安恒西湖论剑

    近日,由阿里安全响应中心举办的2019 ASRC生态大会与安恒承办的2019西湖论剑·网络安全大会在互联网之都杭州成功召开,作为网络安全行业的两大盛会,得到了协会领导.业界权威.行业大咖.领导品牌.企 ...

  6. 2023西湖论剑——misc——MP3

    西湖论剑--misc--MP3 附件下载 链接:https://pan.baidu.com/s/1A-QFz3qC4Q2mSdZKBYqZNw 提取码:lulu MP3详解 这个应该是2023年这一届 ...

  7. 西湖论剑预选赛Misc第二题Write-UP

    近期铺天盖地宣传的"西湖论剑"网络安全技能赛预选已经结束了.在这里随便糊一篇文章(也是我第一次写Write-Up文章),就聊聊杂项最先放出的那个第二题的解法. 首先拿到题,解压,发 ...

  8. WP-2021西湖论剑

    2021西湖论剑-wp 前言 全靠大佬打,我是划水的. 灏妹的web 页面开发中 Dirsearch扫一下,idea泄露 ezupload 查看页面源代码,发现提示 ?source=1 发现使用_FI ...

  9. 2022西湖论剑-初赛CTF部分wp-Zodiac

    2022西湖论剑-初赛CTF部分wp-Zodiac 文章目录 2022西湖论剑-初赛CTF部分wp-Zodiac WEB real_ez_node 扭转乾坤 Node Magical Login PW ...

最新文章

  1. 每日一皮:在调试时,将断点设置在错误的位置...
  2. 神经网络有什么理论支持? 本文作者:AI研习社 2017-11-08 18:30 导语:问:神经网络有什么理论支持? 答:目前为止(2017 年)没有什么特别靠谱的。 雷锋网按:本文原作者袁洋
  3. 这 8 篇文章告诉你:未来的软件研发是怎样的?
  4. boost::container实现前向迭代的测试程序
  5. 投票选举c语言程序,C语言元旦礼物:经典入门问题分析——选举投票
  6. zbox mysql_20190213云服务器部署禅道
  7. linux安装nodejs一键脚本,ubuntu16.04部署nodejs+vue框架脚本
  8. JAVA常见的RuntimeException
  9. 门面设计模式php,学习php设计模式 php实现门面模式(Facade)
  10. 图像处理与计算机视觉的论文创新点总结(二)
  11. iOS开发之开源项目链接
  12. 飞机大战素材素材素材
  13. java 协同过滤算法_推荐系统中协同过滤算法实现分析
  14. 【实习】C++开发 - 美国顶尖金融交易公司-Akuna Capital - 金融科技
  15. 平衡树--替罪羊树 *
  16. mysql ndb 测试_Mysql ndb_Cluster 测试环境搭建
  17. 智能化漏洞挖掘技术总结
  18. Uncaught TypeError: XXX is not a function解决
  19. 头腾大战再升级 字节跳动做游戏的胜算有多少?
  20. 函数设计中参数的规则

热门文章

  1. 前端如何实现后端运行进度_Web页面实现后台数据处理进度与剩余时间的显示
  2. audio 监听播放进度
  3. vivado调用IP核详细介绍
  4. nga php,index.php
  5. APG(加速近端梯度)参考
  6. Unity3D中Enabled、Destroy与Active的区别
  7. 1978年图灵奖--罗伯特·弗洛伊德简介
  8. css outline是什么意思,用法
  9. 9. 查询每个学生及其选修课程的情况,保留学生学号,姓名,课程号,成绩
  10. 用DOSBox0.74进行汇编代码的运行