<h4><span style="color:#0d0016;"><strong>遇到的问题</strong></span></h4>
讯享网
- 加密次数cnt不知道是多少
- 观察源码和官方wp发现有用信息的流量包编号为60,加上随机编码之前进行了一次单独编码(和后面产生的密文类型吻合),所以实际进行了61次编码
- 写出的脚本不出结果 ,只是将输入的密文再次输出,使用官方wp也一样
- 查资料发现b64decode()函数是将base64加密的数据转为二进制流,而每次解密使用的数据应为为字符串形式,所以需要将每次解码后的数据转为字符串格式,即b64decode().decode(‘utf-8’)
- 出现报错提示string中找不到maketrans和translate模块
- python3中该模块的使用是 str.maketrans 和 str.translate
- 在下面脚本中也注释了一下改动的位置以及注意的点,和上述问题差不多
解题思路
先下载对应的附件,解压后得到了一个xxx.pcap文件,肯定是流量分析的问题
使用wireshark工具打开文件,发现了一堆tcp和http协议的流量,在过滤条件出输入http.request.method=POST 发现没有任何POST请求的数据包,看来没这么简单呀(这里就不截图了,毕竟没什么有用的信息)


大致看了一下数据很多,大部分时tcp流,好像没什么显眼的东西,在过滤栏输入
tcp contains “flag” 看一下是否有数据包中含有flag关键字,还真发现了一个,这里注意一下该流量的编号是60,没想到这也是关键信息

通过下面的文本显示发现了其中包含一段python的代码信息,尝试对该流量进行追踪,右键选择追踪流–>tcp流

进入到该界面发现了一段完整的python加密代码,通过分析发现这是flag的加密过程,结尾是一段flag加密后的数据


接下来把该程序单独拿出来分析一下:(代码的分析都放在注释里面了)
讯享网
接下来说一下解密的思路:
- 一次加密后的密文包括两部分:第一位是加密方式的底标+1,后面是加密后的密文
- 所以需要先对第一位进行提取,然后确定加密的方式
- 然后对之后的密文进行对应的解密就行了
那个cnt,也就是加密的次数是不知道的,看了官方的wp发现直接给出了cnt=61,结合前面的分析,原始程序中的cnt应该就是流量包所在的编号60,然后加上刚开始的单独加密刚好是61
下面编写解密的脚本(我这里是直接在给出的加密脚本上改的,只需要编写一下解密函数并把密文加进去即可):
通过运行脚本成功输出了flag
讯享网

ps:这一个题做了一下午,这也是没谁了,搜到的脚本一大堆就是运行不出结果,好在坚持就是胜利,终于给我发现了问题所在,python版本的问题不提示,不报错,这是真的烦,还得多练啊
10

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/190397.html