当前位置: 首页 > news >正文

LitCTF

[LitCTF 2023]enbase64

base 64

里面有一个换表的函数

写代码

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{char *result; char Destination[65]; int v3[65];int j;int i; char Source[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";memset(v3, 0, sizeof(v3));v3[0] = 16;v3[1] = 34;v3[2] = 56;v3[3] = 7;v3[4] = 46;v3[5] = 2;v3[6] = 10;v3[7] = 44;v3[8] = 20;v3[9] = 41;v3[10] = 59;v3[11] = 31;v3[12] = 51;v3[13] = 60;v3[14] = 61;v3[15] = 26;v3[16] = 5;v3[17] = 40;v3[18] = 21;v3[19] = 38;v3[20] = 4;v3[21] = 54;v3[22] = 52;v3[23] = 47;v3[24] = 3;v3[25] = 11;v3[26] = 58;v3[27] = 48;v3[28] = 32;v3[29] = 15;v3[30] = 49;v3[31] = 14;v3[32] = 37;v3[34] = 55;v3[35] = 53;v3[36] = 24;v3[37] = 35;v3[38] = 18;v3[39] = 25;v3[40] = 33;v3[41] = 43;v3[42] = 50;v3[43] = 39;v3[44] = 12;v3[45] = 19;v3[46] = 13;v3[47] = 42;v3[48] = 9;v3[49] = 17;v3[50] = 28;v3[51] = 30;v3[52] = 23;v3[53] = 36;v3[54] = 1;v3[55] = 22;v3[56] = 57;v3[57] = 63;v3[58] = 8;v3[59] = 27;v3[60] = 6;v3[61] = 62;v3[62] = 45;v3[63] = 29;result = strcpy(Destination, Source);for ( i = 0; i <= 47; ++i ){for ( j = 0; j <= 63; ++j )Source[j] = Destination[v3[j]];result = strcpy(Destination, Source);}puts(Destination);//gJ1BRjQie/FIWhEslq7GxbnL26M4+HXUtcpmVTKaydOP38of5v90ZSwrkYzCAuNDreturn 0;}

得到

gJ1BRjQie/FIWhEslq7GxbnL26M4+HXUtcpmVTKaydOP38of5v90ZSwrkYzCAuND

得到换的表以后,套了一个脚本就出来了

import base64
import stringstr1 = "GQTZlSqQXZ/ghxxwhju3hbuZ4wufWjujWrhYe7Rce7ju"string1 = "gJ1BRjQie/FIWhEslq7GxbnL26M4+HXUtcpmVTKaydOP38of5v90ZSwrkYzCAuND"
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"print(base64.b64decode(str1.translate(str.maketrans(string1, string2))))
#LitCTF{B@5E64_l5_tooo0_E3sy!!!!!}

LitCTF{B@5E64_l5_tooo0_E3sy!!!!!}

[LitCTF 2023]snake

.pyc

010 打开,第一行是空的,需要补齐,

提示了python3.7版本

Python 2.7: \x03\xf3\x0d\x0a\0\0\0\0Python 3.0: \x3b\x0c\x0d\x0a\0\0\0\0Python 3.1: \x4f\x0c\x0d\x0a\0\0\0\0Python 3.2: \x6c\x0c\x0d\x0a\0\0\0\0Python 3.3: \x9e\x0c\x0d\x0a\0\0\0\0\0\0\0\0Python 3.4: \xee\x0c\x0d\x0a\0\0\0\0\0\0\0\0Python 3.5: \x17\x0d\x0d\x0a\0\0\0\0\0\0\0\0Python 3.6: \x33\x0d\x0d\x0a\0\0\0\0\0\0\0\0Python 3.7: \x42\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0Python 3.8: \x55\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0Python 3.9: \x61\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0Python 3.10: \x6f\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0

转py

关键代码

下面那个逗号,写的很迷,然后AI转了一下,emmm,人工智障,,。

找了一个别的,要加一个中间变量

脚本

#include<stdio.h>
#include<string.h>
int main()
{char flag[] = {30, 196, 52, 252, 49, 220, 7, 243, 3, 241, 24, 224, 40, 230, 25, 251, 28, 233, 40, 237, 4, 225, 4, 215, 40, 231, 22, 237, 14, 251, 10, 169};int len;int i;char tmp;len=strlen(flag);for(i=0;i<len;i=i+2){tmp=flag[i];flag[i] = flag[i+1 ] ^ 136;flag[i+1] = tmp ^ 119;}    puts(flag);//LitCTF{python_snake_is_so_easy!}return 0;
}

[LitCTF 2023]程序和人有一个能跑就行了--wait

题目提示动态调试

找到主函数

rc4加密,buf2是一个256字节的s盒,密钥是litctf

把那个buf1转为十六进制

进入下面那个4015A0

rc4脚本

def rc4_decrypt(ciphertext, key):# 初始化 S-boxS = list(range(256))j = 0for i in range(256):j = (j + S[i] + key[i % len(key)]) % 256S[i], S[j] = S[j], S[i]# 初始化变量i = j = 0plaintext = []# 解密过程for byte in ciphertext:i = (i + 1) % 256j = (j + S[i]) % 256S[i], S[j] = S[j], S[i]k = S[(S[i] + S[j]) % 256]plaintext.append(byte ^ k)return bytes(plaintext)# 示例用法
encrypted_data = [0x8D, 0x6C, 0x85, 0x76, 0x32, 0x72, 0xB7, 0x40, 0x88, 0x7E, 0x95, 0xEE, 0xC5, 0xED, 0x2E, 0x71, 0x37, 0xF1, 0x4A,0x99, 0x35, 0x18, 0xA7, 0xB0, 0, 0x96, 0xB7]  # 替换成你的密文
encryption_key = b'litctf'  # 替换成你的密钥decrypted_data = rc4_decrypt(encrypted_data, encryption_key)
print("Decrypted Data:", decrypted_data.decode('utf-8'))# Decrypted Data: LitCTF{this_is_a_fake_flag}

一个假的flag,再分析别的

five five

[LitCTF 2023]debase64--wait

参考:http://t.csdnimg.cn/mPUBT

32位,盲猜有SMC,猜错了,用不到,阿巴阿巴

4015220函数进入

学习

[LitCTF 2023]For Aiur--wait

相关文章:

  • Unity Render入门
  • cuda 内核启动
  • 前端基础入门三大核心之HTML篇:探索WebAssembly —— 开启网页高性能应用新时代
  • 成都爱尔胡建斌院长提醒近视超过600度,记得每年检查眼底!
  • excel转pdf并且加水印,利用ByteArrayOutputStream内存流不产生中间文件
  • attributes.nodeName和attributes.nodeValue有什么区别(代码举例说明)
  • rust的版本问题,安装问题,下载问题
  • SpringCloud微服务调用的超时机制和CompletableFuture异步调用的超时机制原理一样吗?
  • 【Linux】-Elasticsearch安装部署[16]
  • 12、Go Gin使用JWT实现认证机制
  • 晶体振荡器
  • go routing 之 gorilla/mux
  • Flutter 中的 AnimatedPhysicalModel 小部件:全面指南
  • 设计模式 15 Decorator Pattern 装饰器模式
  • 【LeetCode算法】第69题:x的平方根
  • CSS盒模型深入
  • ES6--对象的扩展
  • IOS评论框不贴底(ios12新bug)
  • Java 内存分配及垃圾回收机制初探
  • Js基础知识(四) - js运行原理与机制
  • Laravel 中的一个后期静态绑定
  • Linux各目录及每个目录的详细介绍
  • mysql_config not found
  • mysql常用命令汇总
  • 二维平面内的碰撞检测【一】
  • 分布式熔断降级平台aegis
  • 诡异!React stopPropagation失灵
  • 力扣(LeetCode)56
  • 七牛云假注销小指南
  • 悄悄地说一个bug
  • 详解NodeJs流之一
  • 译有关态射的一切
  • 自动记录MySQL慢查询快照脚本
  • ​插件化DPI在商用WIFI中的价值
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #if和#ifdef区别
  • #NOIP 2014# day.2 T2 寻找道路
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $.ajax,axios,fetch三种ajax请求的区别
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot教学评价 毕业设计 641310
  • (算法)N皇后问题
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .Mobi域名介绍
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net core Swagger 过滤部分Api
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 设计模式初探
  • .NET 依赖注入和配置系统
  • .NET6实现破解Modbus poll点表配置文件
  • .NET性能优化(文摘)