首页 > 其他分享 >BUUctf xor

BUUctf xor

时间:2024-05-19 19:07:43浏览次数:12  
标签:BUUctf xor global flag 异或 丢进

0x01 关于xor

xor,即为计算机中的异或计算,相同为0,不同为1。

下面是关于异或加密的四个定理

  1. A ^ 0 = A
  2. A ^ A = 0
  3. (A ^ B) ^ C = A ^ (B ^ C)
  4. (B ^ A) ^ A = B ^ 0 = B // 明文 B;密码 A

观察可知,经历异或加密后的密文,再次进行异或算法即可得到明文。

0x02 题解

先丢进Die看一眼
image

瞟一眼发现没壳,而且是64位,直接丢进IDA。

image

一眼看到左边的main函数。我直接F5大法(

image

“input your flag” 关键语句

获取输入后做了异或运算,然后与global变量作比较

大概率需要的flag就是global的值

一路左键找到global的值

image

选中,shift+E导出
image

剩下的就是编写脚本
简单用python写个解密脚本

s=[102,  10, 107,  12, 119,  38,  79,  46,  64,  17, 120,  13,  90,  59,  85,  17, 112,  25,  70,  31, 118,  34,  77,  35,  68,  14, 103,   6, 104,  15, 71,  50,  79,   0]
flag=chr(s[0])
for i in range(1,len(s)):
    flag+=chr(s[i]^s[i-1])
print(flag)

最后的输出结果

image

标签:BUUctf,xor,global,flag,异或,丢进
From: https://www.cnblogs.com/cia1lo/p/18200497

相关文章

  • BUUCTF-WEB(4-8)
    [ACTF2020新生赛]Include打开题目,是一个超链接,点击后,发现URL发生了变化可以看出是文件包含,包含了一个flag.php的文件我们试着访问/etc/passwd我又试了试伪协议,显然是被过滤了然后我们就访问了一下nginx的日志,访问成功?file=/var/log/nginx/access.log那我们就是UA头写......
  • buuctf 考毛概前复现的两道misc题
    BUUCTFmisc神奇的二维码and梅花香自苦寒来最近要考毛概,所以就匆匆写了BUUCTF上的几道题,不过积少成多,不能太心急,挑了两道让我印象比较深刻的题复现一下。神奇的二维码第一道是二维码类型的misc题,这题我只能说出题人是真的boring,是无聊到什么程度居然会想出这种题目首先把压缩......
  • [H&NCTF] maybe_xor题解
    maybe_xor感觉这道逆向题与其说是考逆向水平,倒不如说是考编写脚本的能力首先题目给了个远程地址,nc连接会回显ELF:接一串base64编码的东东,解码后发现是ELF文件。用IDA打开发现是从数据段读取24个字节到栈上并进行异或,每个字节异或的值都不同,但异或后的结果不会写回栈程序的目......
  • buuctf-pwn-ciscn_2019_es_2
    checksecida我们看到在vul函数中,有两个read函数,每个都读取了0x30(48)大小的字符,并放入字符数组s中,也就是说我们能溢出的只有8个字节,刚好覆盖到ebp和返回地址所以我们需要栈迁移,使我们能溢出更多字节首先利用第一个read,输入40字节的数据,刚好覆盖到ebp,然后printf就会顺带打印......
  • xor序列 线性基
    xor序列线性基题目链接题意:给你\(n\)个数,接着给你\(m\)次询问,每次给出\(x\)和\(y\),判断\(x\)能否与\(n\)个数中任意选出的数异或和为\(y\)思路:考虑异或运算性质若\(a\)^\(b\)=\(c\),那么\(b=a\)^\(c\)。因此我们只需要找出\(n\)个数异或和是......
  • buuctf-pwn-[OGeek2019]babyrop
    查看一下保护情况丢进ida里分析主函数调用了一个含有alarm的函数,这个函数会设置一个定时器,到时间自动退出程序为了方便调试,我们直接patch掉这个函数接着分析,主函数读入了一个随机数,并将其传入sub_804871F函数sub_804871F函数读取输入,并检查输入的是否和随机数相同,不相同......
  • buuctf-pwn-ciscn_2019_c_1-ret2libc
    检查一下保护情况ida里选项2,3都没有什么重要的信息,直接看选项1发现栈溢出漏洞,不过程序对输入的字符串有一个异或加密,这里可以构造异或后的payload,利用程序来解密,或者可以直接在payload第一位加上'\x00',直接截断payload后面的异或操作用cyclic测一下溢出点,得到88找一下system......
  • buuctf-pwn-[第五空间2019 决赛]PWN5-格式化字符串漏洞
    题目地址:https://buuoj.cn/challenges#[第五空间2019决赛]PWN5先检查一下保护情况再拖进ida里分析找到一个格式化字符串漏洞,那么我们可以利用这个漏洞去获取或者改写dword_804C044的值从而进入if语句中,拿到shell什么是格式化字符串漏洞所谓格式化字符串漏洞,就是我们能控......
  • buuctf中Crypto解题合集
    一、一眼就解密ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30=base64在线编解码:https://base64.supfree.net/二、MD5e00cf25ad42683b3df678c61f42c6bdaMD5在线解码:https://www.cmd5.com/三、Url编码%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7durl编码在线网站:https://anytexte......
  • F. Equal XOR Segments
    原题链接题解1.如果能分成偶数个区间,那么一定能分为两个区间2.如果能分为奇数个区间,那么一定能分为三个区间3.能分为两个区间,说明区间异或和为\(0\)4.能分为三个区间,这三个区间分别为区间\(a,b,c\),则\(ab\)区间异或和为零,\(bc\)区间异或和为零code#include<bits/std......