ctf加群题
来源:互联网 发布:手机数据网速慢怎么办 编辑:程序博客网 时间:2024/06/04 21:46
精灵大佬新放出来的加群题, 难度可以去感受一下 ctf学习与交流
反正我等渣滓 都是成这样了
感谢 p 大佬在群里 放出 tips
接下来让我去攻略 一下 。。。
2017.3.5
=========================================================================
这一攻略就是。。。一天 。。。都没 解出来 (省略一万字复杂心情)
说说我的解题过程 与 总结
解题过程
首先 在28号的时候拿到题目,当时看了下也就根据提示 rfc4042 解出一层加密,
再看一下 解出第二层
(这里有点小惭愧,群里有人提示了下才看出来,
当时思维应该多发散一下,解出之后真觉得自己比榆木脑袋还笨),
再看 flag.py 哇这么长一串是什么鬼东西。。 搜索相关函数 原来是可执行二进制文件
开始以为要汇编。。。然后用 ida pro 打开 懵逼 然后搜 汇编相关 逆向 二进制相关
游离了很久 暂时放在一边
-----------------------------------------------------------
一个星期后 pcat 大佬在群里 给出了tips 然后知道了 pyc 文件这么个东西
然后搜索 这就需要 了解 python 运行机制了, 然后又折腾了 一下午 把 pyc 还原出来
(这里 很迷, 中午的时候 就是用的那段代码 一直到下午才有用 =_= ,之后没去追究了,原理清楚就行)
晚上又把解密函数写出来 发现 flag 不对 然后就崩了。。。 开始各种调试,确定不是逻辑问题
那就只有一个问题了,key 不正确,这很伤, key 是通过解密之后 取得的,不确定解密过程是否正确。
-----------------------
第二天 先试一下 各种编码 binary octal hex base64 然后 猜测了下 怕是位数的问题? 就一直试 爆破
跑了十几分钟后 觉得 这样 不妥(跑一年都不一定跑完) 就改了下 试了 二层解密 key 的后7位数字 (跑完大概一两个小时)
全都不对 除了几条之外全都包含 ascii127 以上的 字符(就是显示乱码的样子。。)没什么思路了。。。。。。。
最后 , 在 p 大佬的耐心 指导下 解出了flag ,上午11 点的时候 知道 key 值不对,解到下午 5点。。 我都 骂我这榆木脑袋了 。。。
然而大佬非常耐心 一点一点给出提示 (最后就差 直接 把代码打出来了,详细步骤都说出来了。。。)
非常感谢 p 大佬 ( 向 p 神 致敬!) 感谢 !
总结
做完这道题 (我都不好意思说做完。。全程靠提示。。) 发现,要真正独立完全的解析出一道题 需要 涉及 多方面 知识与经验
rfc4020 就不说了(其实根本看不懂=_=),只说 python 相关的
首先 要还原 pyc 你得 懂 python 运行机制吧 ,
其实 .pyc 文件 就是 python 源码编译后的 PyCodeObject 序列化后的文件 ,
可直接执行, .pyc 的文件 文件头信息 用来检测 python 程序版本 与 文件创建时间,
详细的请戳 http://blog.csdn.net/ncafei/article/details/60466080 里 的那个详细 的链接
Python chr( i ) -> character
return a string of one character with ordinal; 0 < i < 256
unichr(i) -> unicode character
return a unicode string of one character with ordinal ; 0 <= i <= 0x10fffford(c) -> int
return the integer ordinal of a one-character string python chr() 和 ord()
最关键的是 key , 加密函数是给出的,写出解密函数并不难 但是如果 key值不正确 就得不到 设定的 flag
字符转换 在 加密解密中是一种常见的 手法
比如 flag 转成 16进制的ascii 码值 -> 666c6167
变换 可以不止一次 再继续 通过 进制转换成十进制 -> 1718378855
就这么一串数字 (如果脑子跟我一样不开窍的话 想一天你也想不出来。。)
在python中,使用unicode类型作为编码的基础类型。即
decode encode
str ---------> unicode --------->str
python encode() 和 decode() 解码是子编码转 unicode 编码是unicode 转子编码
最后,多思考 多关联想法 多假设 (虽然很多假设会把你带的很偏。。。这个根据经验来。。)
2017.3.8
- ctf加群题
- CTF
- ctf
- ctf
- ctf
- CTF
- About CTF
- CTF训练
- CTF编码
- 一道CTF
- CTF入门
- 第一次CTF
- CTF牛刀小试
- CTF训练
- 百度CTF
- CTF 小结
- ctf-crypto
- CTF学习
- React-Native-lesson
- PAT 1121
- xshell连接成功
- 5-2 列车厢调度 (25分)
- [BZOJ1040][[ZJOI2008]骑士][基环外向树+树形DP]
- ctf加群题
- java 方法使用实例----生成随机数
- jquery解析JSON数据
- c++链表
- 1003.Max Sum
- 无线网络转为有线网络
- 对java的见识第一节
- [Thinking in Java]
- 程序的编写风格