首页 > 其他分享 >BUUCTF GWCTF2019 re3

BUUCTF GWCTF2019 re3

时间:2024-07-30 10:50:02浏览次数:17  
标签:AES BUUCTF 函数 re3 bytes aes flag ea GWCTF2019

挺有意思的一题,记录一下
主要思路为smc解密 + AES算法

扔进ida后找到主函数:

发现函数地址异或,推测为smc,先按d转化为数据,然后直接使用python脚本解密:

from ida_bytes import *

ea = 0x402219
for i in range(0,224):
  patch_bytes(ea + i, bytes(ea + i) ^ 0x99)

选中按p生成函数:

函数逻辑也很简单,a1为我们输入的flag,通过上面三个函数的变换,最终和给定的byte比较。
使用findcrypto插件发现为aes加密,直接编写脚本解密即可:

from Crypto.Cipher import AES
# 密文
encoded = [0xBC, 0x0A, 0xAD, 0xC0, 0x14, 0x7C, 0x5E, 0xCC, 0xE0, 0xB1,
           0x40, 0xBC, 0x9C, 0x51, 0xD5, 0x2B, 0x46, 0xB2, 0xB9, 0x43,
           0x4D, 0xE5, 0x32, 0x4B, 0xAD, 0x7F, 0xB4, 0xB3, 0x9C, 0xDB,
           0x4B, 0x5B]
# 密钥
key = [
    0xCB, 0x8D, 0x49, 0x35, 0x21, 0xB4, 0x7A, 0x4C, 0xC1, 0xAE,
    0x7E, 0x62, 0x22, 0x92, 0x66, 0xCE
]
aes = AES.new(bytes(key), AES.MODE_ECB)
data = aes.decrypt(bytes(encoded))
print(data)

解得flag:flag{924a9ab2163d390410d0a1f670}

标签:AES,BUUCTF,函数,re3,bytes,aes,flag,ea,GWCTF2019
From: https://www.cnblogs.com/reverse-chen/p/18331869

相关文章

  • BUUCTF-Exec(Web)
    1.相关知识Ping命令ping命令通常用来作为网络可用性的检查。ping命令可以对一个网络地址发送测试数据包,看该网络地址是否有响应并统计响应时间,以此来测试网络的连通情况和测试网络速度。ping命令执行后会显示一系列Replyfrom或者Requesttimeout这样的结果。前者表示与对方......
  • BUUCTF-Include(Web)
    一、Include11.相关知识PHP://filterphp://filter是php中独有的一种协议,它是一种过滤器,可以作为一个中间流来过滤其他的数据流。通常使用该协议来读取或者写入部分数据,且在读取和写入之前对数据进行一些过滤,例如base64编码处理,rot13处理等。具体详见:https://blog.csdn.net......
  • BUUCTF 6.[第五空间2019 决赛]PWN5 1
    拿到题目,先运行一下很明显地出现了一个重复我们的输入,以及一个判断的过程,那么我们可以猜测可能会有栈溢出漏洞,让我们继续保护是开了一个canary以及nx,大概率就不是栈溢出漏洞了,因为canary的存在会使栈溢出非常麻烦。我们看一下IDA存在栈溢出漏洞,但是由于长度不够,我们无法......
  • BUUCTF 5.level0
    很简单的一道栈溢出的题(不知道为啥解题人数却比前几个少)直接开干:看不出啥来保护只开了NX,我们看一下IDA很明了的一道题,直接秒exp:flag:......
  • BUUCTF 5.pwn1_sctf_2016
    拿到题目首先先运行。我们发现他是将我们输入的重新输出出来,但是第二次运行时,我输入超长字符串后,仅仅只是输出了一部分,所以我们可以猜测程序中应该有检测长度的部分,我们再检查一下保护机制。我们发现仅仅只是开了一个nx保护,那么我们直接看IDA我们发现主函数中仅仅只是调用......
  • BUUCTF 4.ciscn_2019_n_1
    拿到题目首先先运行程序我们发现给了我们一个数字,我们猜测应该是一个条件判断的程序,然后我们检查一下保护机制我们发现只开了NX(不可执行)保护,那我们直接看IDA就行了。main函数只是设定了无缓冲模式,以及调用了一个func函数,然后我们看一下我们可以看到gets和我们想要的flag,......
  • BUUCTF 3.warmup_csaw_2016
    拿到题目,我们先运行一下我们发现这道题的样子和BUUCTF的rip很像,一样是让我们输入,一样是在输入超长字符串后程序会崩溃,所以我们可以猜测是一道栈溢出的问题,我们来看一下保护机制我们发现依旧是几乎没开保护机制,所以大概率是一道栈溢出的题。我们看一下IDA我们发现最后的get......
  • BUUCTF 2.rip
    拿到题目首先运行一下我们可以看到在我第一次运行时我们发现他就是将我们输入的重新输出了一遍,我们可以猜测应该是gets函数输入,然后输出,那我们便可以测试第二次,我们输入一个超长字符串,发现程序崩溃了,我们可以猜测应该是程序没有对长度进行检测而导致的栈溢出,那么我们带着这个猜......
  • 【BUUCTF】Easy MD5
    【BUUCTF】EasyMD5(SQL注入、PHP代码审计)题目来源收录于:BUUCTFBJDCTF2020题目描述抓包得到提示select*from'admin'wherepassword=md5($pass,true)题解第一关这是一个SQL注入点,但是有md5()过滤。这里有知识点:mysql会把十六进制数据解析为字符串。给$pass......
  • BUUCTF [安洵杯 2019]easy_web
    上来看到url两个参数直接sqlmap挂着扫,dirsearch和githack扫都没东西,然后sqlmap也没有成果ctrl+U查看源码发现以base64编码输出了文件的内容,返回看url只有img参数有东西这个东西看着就像base64编码,解码两次得到一串数字,可能还是什么东西我又解了一次,发现是十六进制转字符......