首页 > 其他分享 >BUUCTF之2019红帽杯--easyre

BUUCTF之2019红帽杯--easyre

时间:2022-11-18 20:56:14浏览次数:56  
标签:BUUCTF -- Base64 flag v1 异或 数组 红帽 IDA

老样子,先查壳

无壳,ELF64位,丢IDA继续分析即可

首先看下字符串表,发现有一大串字符,还有很像Base64索引表的字符串

来到主要逻辑函数

首先发现,v12,v13,v14是一个大数组,不过被IDA拆分成了多个小数组。而通过后面的if语句判断==36也能知道,通过v12,v13,v14这几个连续数组与本身i的异或能得到v15.

下面附上脚本

异或后的结果为:Info : The first four chars are 'flag',译为前4个字符为flag.

继续往下分析

在该处代码中,多处运用到了sub_400E44函数,跟进去发现是一个Base64的算法,并且并没有进行一个魔改,另外这里也可以通过IDA插件FindCrypt找到Base64算法。

而在一开始的字符串窗口,我们也找到了密文,直接Base一把梭.

然后经过N次的Base64解密,我成功的被骗了-_-,打开后是一个网址,什么用也没有.

然后继续硬着头皮分析,在输出You found me!语句的if判断语句的地方

发现了有一处地方,引用了函数sub_400D35。跟进去看看

除开第一次与v1异或外,后续还和已知数组进行了24次异或。

结合一开始我们大数组与i异或后的提示,前4个字符为flag,可以推断出,这里一开始是获得一个密钥,然后进行2次异或。

第一次异或是flag字符与已知数组进行异或,从而反推出v1

第二次异或是已知数组与v4进行异或,而通过第一次异或反推出的v1,也可以推出v4,进而异或推出flag.

下面附上脚本:

flag{Act1ve_Defen5e_Test}

解毕

总结:以后要多多注意程序中的前后连贯性,可能程序中很多都是无意的代码,没有必要过多的去进行一个纠结

 

标签:BUUCTF,--,Base64,flag,v1,异或,数组,红帽,IDA
From: https://www.cnblogs.com/qsons/p/16904860.html

相关文章

  • 单机10万TCP连接测试记录
    目录前言准备工作安装DotNet6环境服务端代码客户端代码编译测试记录失败尝试1(Linux可用端口范围限制)解决Linux端口范围限制查看端口范围修改端口范围失败尝试2(可用端口......
  • Promise的方法
    Promise.all()Promise.all()方法接收一个promise的iterable类型(注:Array,Map,Set都属于ES6的iterable类型)的输入,并且只返回一个Promise实例,那个输入的所有promise......
  • 补档--【THM】File Inclusion(文件包含漏洞)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/fileinc通过学习相关知识点:了解文件包含漏洞,包括本地文件包含(LFI)、远程文件包含(RFI)和路径遍历(目录遍历)。介......
  • 【深入浅出 Yarn 架构与实现】3-3 Yarn Application Master 编写
    本篇文章继续介绍YarnApplication中ApplicationMaster部分的编写方法。一、ApplicationMaster编写方法上一节讲了Client提交任务给RM的全流程,RM收到任务后,由......
  • 进程,多线程
    今日内容详细同步与异步用来表达任务的提交方式同步 提交完任务之后原地等待任务的返回结果期间不做任何事异步 提交完任务之后不原地等待任务的返回结果直接去做......
  • 01. 信息搜集:Web 1~10
    目录web1知识点题解web2知识点题解web3知识点题解web4知识点题解web5知识点题解web6知识点题解web7知识点题解web8知识点题解web9知识点题解web10知识点题解web1知识点......
  • 并发编程
    并发编程同步与异步用来表达任务的提交方式同步提交完任务之后原地等待任务的返回结果期间不做任何事可靠任务序列异步提交完任务后不等待任务的返回结果直接去......
  • Windows安装fdfs_client_py_master.zip
    1.解压进入fdfs_client-py-master\fdfs_client目录下的storage_client.py注释fromfdfs_client.sendfileimport*importos,statimportstructimportsocketi......
  • 25个Pandas高频实用技巧
    导入案例数据集importpandasaspdimportnumpyasnpdrinks=pd.read_csv('http://bit.ly/drinksbycountry')movies=pd.read_csv('http://bit.ly/imdbratings')......
  • E. Hanging Hearts
    E.HangingHeartsPakChanekhas$n$blankheart-shapedcards.Card$1$isattacheddirectlytothewallwhileeachoftheothercardsishangingontoexactly......