2021 工业信息安全技能大赛 线上赛第二场--异常的文件

题目描述

异常的文件
    某次工控安全测试中,老付发现靶标的主机上存留一个与相关系统无关的程序,你能破解出来分析到里面的关键信息吗?flag格式为:flag{}。 

题目下载

链接:https://pan.baidu.com/s/15c9-GogIC1XOcM6qwTLnFQ 
提取码:yfld

题目考点

逆向工程md5加密算法特征,逆向分析能力。

解题思路 

1.下载题目解压,运行命令file 04 看看是什么类型的文件

 

 2.发现识别不出文件类型,打开hex查看 

 开头8字节均是0,猜测是ELF文件头缺失,补上7F 45 4C 46 发现是64位ELF程序,无壳。

 3.简单运行下 

4.常规操作,打开IDA。

简单分析可得需要用户输入一串8字节的字符串,先与byte_5090前8位进行亦或xor操作。

然后每一位进行某种操作后与8个字符串对比,通过验证后即可输出相关信息,猜测和flag有关。

进入sub_1682子函数 发现明显的MD5加密特征数,以及8个字符串均为32位,判断8个字符串为md5加密。

MD5加密特征:

关于MD5加密,要记住以下几点:

1、位数

关于MD5加密后的数据只有16位或者是32位,不论你的加密数据多长它都是这样生成的。

2、作用

主要是用于登陆时校验,称为取盐,这种方式是不可逆的。

3、MD5加密函数会出现的默认key

1732584193、271733879、1732584194、271733878

 通过md5在线解密可得8个字符串md5为

0x34,0x7e,0x46,0xc5,0x7c,0x38,0x77,0x26

 整理以上信息可写出xor解密脚本。输出为:

WhoWin?

xor_result=[0x34,0x7e,0x46,0xc5,0x7c,0x38,0x77,0x26]
byte_5090=[0x63, 0x16, 0x29, 0x92, 0x15, 0x56, 0x48, 0x26, 0x56, 0x43, 0x74, 0x36, 0x95, 0x38, 0x77, 0x18]
inputstr=""
for i in range(8):
    tmp=xor_result[i]^byte_5090[i]
    print(tmp)
    inputstr+=chr(tmp)
print(inputstr)

 启动程序输入WhoWin? 可得flag。

 

flag 

flag{RobotWinTheGame}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值