3月22日

mdmd555

看题目,已经给出大部分flag,应该是解出md5值,得到?的内容

用python写脚本得到flag(我不会写,直接用师姐的)

import hashlib

for i in range(32, 127):
    for j in range(32, 127):
        for k in range(32, 127):
            m = hashlib.md5()
            m.update(('Yunxi{' + chr(i) + '_real' + chr(j) + 'y_k' + chr(k) + '0w_md5}').encode('utf-8'))
            des = m.hexdigest()
            if des == '42db61d26c6541e30314cafc60f93113':
                print('Yunxi{' + chr(i) + '_real' + chr(j) + 'y_k' + chr(k) + '0w_md5}')
                break
这是一个Python脚本,它使用hashlib库中的md5函数来生成MD5哈希值。该脚本通过三个嵌套的循环遍历ASCII码表中从32到126的字符(这些字符包括空格、标点符号、数字、大写和小写字母,但不包括控制字符),并尝试找到一组特定的字符,使得某个特定的字符串(经过MD5哈希处理后)的哈希值等于42db61d26c6541e30314cafc60f93113。

详细解释:

#1.导入库
import hashlib
#导入Python的hashlib库,该库提供了各种哈希算法的实现,包括MD5。

#2.三层循环
for i in range(32, 127):
    for j in range(32, 127):
        for k in range(32, 127):
#这三个循环分别遍历ASCII码中从32到126的字符。

#3.生成字符串并计算其MD5哈希值
m = hashlib.md5()
m.update(('Yunxi{' + chr(i) + '_real' + chr(j) + 'y_k' + chr(k) + '0w_md5}').encode('utf-8'))
des = m.hexdigest()
#创建一个`md5`哈希对象。
#使用`update`方法更新该对象的内容,这里更新的是一个特定的字符串,该字符串由固定部分和三个由循环变量`i`、`j`、`k`决定的字符组成。
#使用`hexdigest`方法获取哈希值的十六进制表示。

#4.检查哈希值
if des == '42db61d26c6541e30314cafc60f93113':
    print('Yunxi{' + chr(i) + '_real' + chr(j) + 'y_k' + chr(k) + '0w_md5}')
    break
#如果计算出的哈希值等于42db61d26c6541e30314cafc60f93113,则打印出用于生成该哈希值的字符串,并跳出最内层的循环。

师姐的旅游照片

下载文件,没有后缀名,猜想应该是图片隐写或压缩包隐写

修改文件后缀名为png,winhex打开,在最后找到一串base64编码

解码得到一半flag,另一半应该藏在压缩包里

将文件后缀名改为zip,打开得到另一张图片,观察发现图片不完整,即图片高度不够,查看图片属性中的高和宽

把高800和宽1280转为16进制,为320和500

把第二张图片打开,搜索高和宽,找到图片的高和宽,修改高为647(1607的16进制)

查看修改后的图片,得到后半段flag

留个后门

看到题目中的后门,想到用D盾扫后门,得到两个后门

分别查看两个后面,在第二个中找到flag

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值